1. 程式人生 > >opencv影象處理(二):濾波器

opencv影象處理(二):濾波器

     濾波器在影象處理中的應用非常廣泛,OpenCV也有個直接使用濾波器掩碼(核)的函式filter2D,將影象與核進行卷積運算得到目標影象。卷積是在每一個影象塊與某個運算元(核)之間進行的運算,而核就是一個固定大小的數值陣列。

     實際上,在OpenCV中很多演算法都是用卷積實現的,包括一些邊緣檢測的演算法。本文無意列舉這些演算法的原理,僅僅是考察一下OpenCV的實現,再嘗試用Python呼叫這些演算法,看看其效果。


 直接利用 filter2D得到圖片的濾波

# -*- coding: utf-8 -*-
# !/usr/bin/env python
# @Time    : 2018/11/19 15:42
# @Author  : xhh
# @Desc    : 圖片濾波器
# @File    : opencv_filterImg.py
# @Software: PyCharm
import cv2
import numpy as np

# filter2D
img = cv2.imread('../tupian/green.png')
cv2.imshow('src', img)

 # 直接給出圖片的濾波矩陣
kernel = np.array([ [-1, -1, -1],
                    [-1,  8, -1],
                    [-1, -1, -1] ])

filter_dst = cv2.filter2D(img, -1, kernel)

cv2.imshow('dst', filter_dst)
cv2.waitKey(0)

結果: