1. 程式人生 > >opencv-學習筆記(4)-模糊

opencv-學習筆記(4)-模糊

family .get opencv nbsp PE 基礎 dst 噪聲 median

                            opencv-學習筆記(4)-模糊


本章要點:

4種模糊方式


2d卷積

Cv2.filter2D(‘圖像對象’,‘目標圖像這裏直接設為-1即可’,kernal,anchor(-1,-1))

一般後一個參數略去就行

Kernal的定義用nump.ones((5,5),np.float)/25 這裏可以自己調節

技術分享圖片

import cv2
import numpy as np
from matplotlib import pyplot as plt

img=cv2.imread(new.jpg)

kernal=np.ones((8,8),np.float32)/64

dst
=cv2.filter2D(img,-1,kernal) plt.subplot(121),plt.imshow(img),plt.title(ORignial) plt.xticks([]),plt.yticks([]) plt.subplot(122),plt.imshow(dst),plt.title(Averaging) plt.xticks([]),plt.yticks([]) plt.show()

技術分享圖片


opencv提供了四種模糊方式

第一種

首先是最基礎的歸一化卷積

效果和filter2D一樣

Newimg=Cv2.blur(‘圖像對象’,(5,5))建議用這個代替上面的filter2D

第二種中心化

把卷積核變成高斯核

我們可以用cv2.getGaussianKernel()構建一個高斯核

也可以直接

#後面分別是高斯核大學和標準差

Blur=cv2.GaussianBlur(img,(5,5),0)

第三種是中值模糊

中值模糊用來除去椒鹽噪聲。

用中心像素周圍或者本身來取代。能有效去除噪聲,要求卷積核為奇數

cv.medianBlur(img,5)

技術分享圖片

第四種是雙邊濾波

Cv2.bilateralFilter()能保持邊界清晰的情況去除噪聲,不過速度比較慢,

雙邊濾波用了空間高斯權重和灰度值相似性高斯權重,空間高斯確保只有領近的像素對中心點有影響,灰度值相似性高斯確保只有中心與鄰近相似時候才會做模糊運算

Cv2.bilateralFilter(圖像對象,為領域直接,空間高斯函數標準差,灰度值相似性高斯函數標準差)

opencv-學習筆記(4)-模糊