OpenCV入門:平滑處理 — 雙邊平滑
阿新 • • 發佈:2018-12-25
平滑處理 — 雙邊平滑
相關函式:
C++: void bilateralFilter(InputArray src, OutputArray dst, int d, double sigmaColor, double sigmaSpace, intborderType=BORDER_DEFAULT )
引數解析:
- src – 源必須是8位或者浮點數,1或者3通道圖片。
- dst – 輸出圖片,和輸入圖片相同大小和深度。
- d – 在濾波過程中使用的各畫素鄰域直徑,如果這是一個非整數,則這個值由sigmaSpace
- sigmaColor – 顏色空間的標準方差。數值越大,意味著越遠的的顏色會被混進鄰域內,從而使更大的顏色段獲得相同的顏色。
- sigmaSpace – 座標空間的標註方差。 數值越大,以為著越遠的畫素會相互影響,從而使更大的區域足夠相似的顏色獲取相同的顏色。當d>0,d指定了鄰域大小且與sigmaSpace無關。否則,d正比於sigmaSpace。
相關例項:
#include<opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> #include"opencv2/imgproc/imgproc.hpp" #include <stdio.h> using namespace cv; /* 雙邊平滑:void bilateralFilter(InputArray src, OutputArray dst, int d, double sigmaColor, double sigmaSpace, intborderType=BORDER_DEFAULT ) 引數解析: src – 源必須是8位或者浮點數,1或者3通道圖片。 dst – 輸出圖片,和輸入圖片相同大小和深度。 d – 在濾波過程中使用的各畫素鄰域直徑,如果這是一個非整數,則這個值由sigmaSpace決定。 sigmaColor – 顏色空間的標準方差。數值越大,意味著越遠的的顏色會被混進鄰域內,從而使更大的顏色段獲得相同的顏色。 sigmaSpace – 座標空間的標註方差。 數值越大,以為著越遠的畫素會相互影響,從而使更大的區域足夠相似的顏色獲取相同的顏色。當d>0,d指定了鄰域大小且與sigmaSpace無關。否則,d正比於sigmaSpace。 **/ int main() { cvNamedWindow("雙邊平滑原圖", 0); cvNamedWindow("雙邊平滑效果圖",0); Mat imageSrc = imread("寒冰射手.jpg"); imshow("雙邊平滑原圖", imageSrc); Mat imageChange; //雙邊平滑處理 bilateralFilter(imageSrc, imageChange, 3, 3 * 2, 3 / 2); //顯示效果圖 imshow("雙邊平滑效果圖", imageChange); waitKey(6000 * 100); }
效果圖(好像沒多大區別。。。)