markdown
#說明
影像處理的流程中有一個filter的function: 2D捲積=> cv2.filter2D(),是濾波器的概念,濾波器會把一些資訊過濾,一些資訊通過,這樣的想法是用於訊號上,在影像則是對影像的陣列做捲積,捲積也就是所謂的 convolution,把它想成內積就可以了,以上是自己的理解,如果有錯歡迎指導。
參考其中一篇文中對影像作平均濾波的動作,可以調整濾波器的內核定義,以下範例解釋。
#操作流程
##Code
```
import cv2
import numpy as np
img = cv2.imread('XXX.png')
cv2.namedWindow('original', cv2.WINDOW_NORMAL)
cv2.resizeWindow("original", 640, 480)
cv2.imshow("original", img)
cv2.waitKey(-1)
kernel = np.ones((5,5),np.float32)/25
dst = cv2.filter2D(img,-1,kernel)
cv2.namedWindow('result', cv2.WINDOW_NORMAL)
cv2.resizeWindow("result", 640, 480)
cv2.imshow("result", dst)
cv2.waitKey(-1)
```
##DEMO濾波器內核為5*5=25
這邊的內核設定為5*5共識25個像素上,也就是這張圖片對這個25的陣列做內積,以25成為一格,將這個格的做平均成為相同的,然後取代原先的值,從這個觀念來看,如果是把這個內積現在為25若是擴大圖片看起來會越模糊。
##DEMO濾波器內核為100*100=10000
與剛剛的圖片相比模糊很多。
- 參考 :https://www.jianshu.com/p/e8e1f2f1c605
##補充其他濾波的方法
```
blur = cv2.blur(img,(5,5))
blur = cv2.GaussianBlur(img,(5,5),0)
median = cv2.medianBlur(img,5)
```
留言
張貼留言