-
Goals
- 學習用不同低通濾波方法模糊影象(Blur imagess with various low pass filter)
- 用用定製的濾波器處理影象(Apply custom-made filters to images (2D convolution))
高通濾波與低通濾波
images can be filtered with various low-pass filters (LPF), high-pass filters (HPF), etc. A LPF helps in removing noise, or blurring the image. A HPF filters helps in finding edges in an image.
cv2.filter2D()
OpenCV provides a function cv2.filter2D() to convolve卷積 a kernel(核) with an image. 例如:
定義一個5x5 averaging filter kernel
直接上程式碼:
import cv2 import numpy as np from matplotlib import pyplot as plt #讀影象 img = cv2.imread('text.jpg') #核的定義 kernel = np.ones((5,5),np.float32)/25 dst = cv2.filter2D(img,-1,kernel) #輸出 plt.subplot(121),plt.imshow(img),plt.title('Original') plt.xticks([]), plt.yticks([]) plt.subplot(122),plt.imshow(dst),plt.title('Averaging') plt.xticks([]), plt.yticks([]) plt.show()
結果展示:
註釋:
Python:
cv.
Filter2D
(src, dst, kernel, anchor=(-1, -1))
- src – input image.
- dst – output image of the same size and the same number of channels as
src
.
- kernel – convolution kernel (or rather a correlation kernel), a single-channel floating point matrix; if you want to apply different kernels to different channels, split the image into separate color planes using
split()
and process them individually. - anchor – anchor of the kernel that indicates the relative position of a filtered point within the kernel; the anchor should lie within the kernel; default value (-1,-1) means that the anchor is at the kernel center.
- delta – optional value added to the filtered pixels before storing them in
dst
. - borderType – pixel extrapolation method (see
borderInterpolate()
for details).