[16] 圖像降噪處理opencv--非線性濾波

1.中值濾波---非線性濾波
Mat medianBlurImg;
cv::medianBlur(SrcImg,medianBlurImg,5);
//16U圖像--系數(shù)只能為3,5,大于5會(huì)出錯(cuò)
基本思想是用像素點(diǎn)鄰域灰度值的中值來(lái)代替該像素點(diǎn)的灰度值,主要是利用中值不受分布序列極大值和極小值影響的特點(diǎn),讓周圍的像素值接近真實(shí)的值從而消除孤立的噪聲點(diǎn)。
void medianBlur(InputArray src, OutputArray dst, int ksize)
InputArray src: 輸入圖像。特別注意的是圖像為1、3、4通道的圖像,當(dāng)模板尺寸為3或5時(shí),圖像深度只能為CV_8U、CV_16U、CV_32F中的一個(gè),如而對(duì)于較大孔徑尺寸的圖片,圖像深度只能是CV_8U。
OutputArray dst: 輸出圖像。尺寸和類型與輸入圖像一致,可以使用Mat::Clone以原圖像為模板來(lái)初始化輸出圖像dst。
int ksize: 濾波模板的尺寸大小,必須是大于1的奇數(shù),如3、5、7等


圖片.png

2.雙邊濾波--非線性濾波
Mat bilateralFilterImg;
cv::bilateralFilter(SrcImg, bilateralFilterImg, 9, 75, 75);

void cv::bilateralFilter ( InputArray src,
OutputArray dst,
int d,
double sigmaColor,
double sigmaSpace,
int borderType = BORDER_DEFAULT
)
--無(wú)法使用16U
//輸入圖片需要是 8 位的數(shù)據(jù)類型,或者浮點(diǎn)型,可以是單通道,或者三通道。
Source 8 - bit or floating - point, 1 - channel or 3 - channel image.
[雙邊濾波]可以在去除噪聲的同時(shí),保持邊緣信息相對(duì)清晰。但是,相比于大多數(shù)濾波器,雙邊濾波的速度是非常慢的。
關(guān)于 sigma 的值: 通常為了簡(jiǎn)化,兩個(gè) sigma 的值可以設(shè)置為相等。如果這兩個(gè)值都非常小,比如小于 10,則濾波器沒有什么太大的效果。如果大于 150,則會(huì)有非常強(qiáng)的影響,甚至?xí)寛D片產(chǎn)生卡通化的效果。
關(guān)于濾波器尺寸: 通常 d 大于 5 的時(shí)候,濾波過(guò)程會(huì)非常慢,所以如果是在線處理,那么建議 d 設(shè)置為 5,而離線處理非常多的噪聲的情況,可以考慮把 d 設(shè)置為 9。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容