OPENCV-5 學習筆記
線性濾波
- 方框濾波——boxblur函數
- 均值濾波(鄰域平均濾波)——blur函數
- 高斯濾波——GaussianBlur函數
- 中值濾波——medianBlur函數
- 雙邊濾波——bilateralFilter函數
關于濾波和模糊—–濾波可分低通濾波和高通濾波兩種。而高斯濾波是指用高斯函數作為濾波函數的濾波操作,至于是不是模糊,要看是高斯低通還是高斯高通,低通就是模糊,高通就是銳化。
高斯濾波是一種線性平滑濾波,適用于消除高斯噪聲,廣泛應用于圖像處理的減噪過程。
//載入原圖
Mat image = imread("e://4.jpg");
//創建窗口
namedWindow("高斯濾波【原圖】");
namedWindow("高斯濾波【效果圖】");
//顯示原圖
imshow("高斯濾波【原圖】", image);
//進行高斯濾波操作,其他方式類似
Mat out;
GaussianBlur(image, out, Size(5, 5), 0, 0);
//顯示效果圖
imshow("高斯濾波【效果圖】", out);
waitKey(0);
非線性濾波
- 中值濾波——medianBlur函數
- void medianBlur(InputArray src,OutputArray dst, int ksize)
- int類型的ksize,孔徑的線性尺寸(aperture linear size),注意這個參數必須是大于1的奇數,比如:3,5,7,9 …
- 雙邊濾波——bilateralFilter函數
- void bilateralFilter(InputArray src, OutputArraydst, int d, double sigmaColor, double sigmaSpace, int borderType=BORDER_DEFAULT)
開運算:先腐蝕后膨脹的過程—可以用來消除小物體、在纖細點處分離物體、平滑較大物體的邊界的同時并不明顯改變其面積
閉運算:先膨脹后腐蝕的過程—能夠排除小型黑洞(黑色區域)
形態學梯度:膨脹圖與腐蝕圖之差—可以用形態學梯度來保留物體的邊緣輪廓
頂帽運算:為原圖像與“開運算“的結果圖之差—當一幅圖像具有大幅的背景的時候,而微小物品比較有規律的情況下,可以使用頂帽運算進行背景提取
黑帽運算為:”閉運算“的結果圖與原圖像之差—用來分離比鄰近點暗一些的斑塊
morphologyEx函數
void morphologyEx(InputArray src,OutputArray dst,int op,InputArraykernel,Pointanchor=Point(-1,-1),intiterations=1,intborderType=BORDER_CONSTANT,constScalar& borderValue=morphologyDefaultBorderValue());
op類型:
- MORPH_OPEN – 開運算(Opening operation)
- MORPH_CLOSE – 閉運算(Closing operation)
- MORPH_GRADIENT -形態學梯度(Morphological gradient)
- MORPH_TOPHAT - “頂帽”(“Top hat”)
- MORPH_BLACKHAT - “黑帽”(“Black hat“)