opencv濾波算法,opencv怎樣進(jìn)行眾數濾波(opencv 濾波)_2
眾數濾波簡(jiǎn)介
眾數濾波是濾波v濾一種非線(xiàn)性濾波方法,主要用于去除圖像中的算法數濾椒鹽噪聲,它的樣進(jìn)基本思想是將圖(tu)像中的椒鹽噪聲視為一種特殊的點(diǎn),通過(guò)計算這些點(diǎn)的行眾眾數,從而達到去噪的波o波目的,眾數濾波在圖像處理中的濾波v濾應用非常廣泛,如去噪、算法數濾圖像增強等。樣進(jìn)
openCV中如何進(jìn)行眾數濾波
openCV(?_?;)提供了一個(gè)名為medianBlur的行眾函數,可以實(shí)現眾數濾波,波o波該函數的(de)濾波v濾基本語(yǔ)法如下:(′ω`)
cv2.medianBlur(src, ksize[, dst[, mask[, anchor]]])參數說(shuō)明:
??211; src:輸入圖像,即需要進(jìn)行濾波的算法數濾圖像。
– ksize:濾波器的樣進(jìn)大小,必須為正奇數。行眾
– dst:輸出??圖像,波o波用(yong)于存儲濾波后的圖像,通??梢栽O置為No(′;д;`)ne,(′_ゝ`)表示自動(dòng)創(chuàng )建一個(gè)與(yu)輸入圖像大小相同的新圖像。
– mask:可選參數,用于指定一個(gè)掩膜矩陣,如果設置了??掩膜矩陣,那么只有掩膜矩陣中值為非零的像素才會(huì )被考慮在內。
̵ヽ(′▽?zhuān)?ノ1; anchor:可選參數,用于指定眾數濾波的錨點(diǎn)位置,默認值為(-1, -1),??表示錨點(diǎn)位于矩形區域的中心。
下??面是一個(gè)使用OpenCV進(jìn)行眾數濾波的示例代碼:
import cv2讀取圖像img = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE)對圖(tu)像進(jìn)行眾數濾波blurred_img = cv2.medianBlur(img, 5)顯示原圖和濾波后的圖像cv2.imshow('Original Image', img)cv2.imshow('Blurred Image', blurred_img)等待按鍵,然后關(guān)閉窗口cv2.waitKヽ(′▽?zhuān)?ノey(0)cv2.destroyAllWindows()openCV中其他常見(jiàn)的濾波算法
1、高斯濾波:高斯濾波是一種線(xiàn)性平滑濾波方法,可以有效地消除圖像中的高斯噪聲,在OpenCV中,可以使用GaussianBlur函數實(shí)現高斯濾波,基本語(yǔ)法如下:
cv2.Gaussia??nBlur(src, ks(′ω`)ize[, sigmaX[, sigmaY[, borderType]]])ksize和sigmaX、sigmaY分別表示濾波器的大小和標準差。borderType表示邊界處理方式,默認為cv2.BORDER_DEFAULT。
2、雙邊濾波:雙邊濾波是一種非線(xiàn)性濾波方法ヽ(′▽?zhuān)?ノ,可ヾ(′▽?zhuān)??以在保留邊緣信息的同時(shí)去除噪聲,在OpenCV中,可以使用bilateralFilter??函數實(shí)現雙邊濾波,基本語(yǔ)法如下:
cv2.bilateralFilter(src, ksize[, dst[, sigmaColor[, sigmaSpace[, borderType]]]])ksize表示??濾波器的大??;sigmaCo??lor和sig??maSpace分別表示顏色空間的標準差(′;д;`)和坐標空間的標??準差;borderType表示邊界處理方式,默認為cv2.BORDER_DEFAUL(′?ω?`)T。
3、中值濾波:中值濾??波是一種非線(xiàn)性濾波方法,可以有效地去除椒鹽噪聲,在OpenCV中,可以使用medianBlur函數實(shí)現中值濾波,基本語(yǔ)法已在上文介紹。
4、銳化濾波:銳化濾波是一種增強圖像邊緣信息的濾波方法,在OpenCV中,可以使用addWeighted()函數實(shí)現銳化濾波,基本語(yǔ)法如下:
cv2.??addWeighted(src1, alpha, sr??c2, beta, gamma)src1和src2分別表示輸入圖像;alpha、beta和gamma分別表示兩個(gè)圖像的權重系數;最后一個(gè)參數表示兩個(gè)圖像的加權因子之和。
