做網(wǎng)站都需要哪些技術(shù)網(wǎng)絡(luò)推廣和seo
1、中值濾波
使用中值濾波去除圖像的異常像素點(diǎn),使用cv2.cv2.medianBlur(img, 3)表示再圖像在中值濾波窗口3*3的范圍內(nèi),從下到大排序,將當(dāng)前值替換為排序中值(如下圖所示)將56替換為(56,66,90,91,93,95,97,101)中的中值93。
Python代碼如下:
將輸入圖像經(jīng)過(guò)中值濾波后:
noise_img = './noiseimg.png'
image = cv2.imread(noise_img)
image = cv2.medianBlur(image, 5)
cv2.imwrite('./img.png', image)
原圖與中值濾波后得到對(duì)比:
注意:中值濾波較大的核尺寸會(huì)考慮更大的鄰域,雖然能更有效地去除噪聲,但也會(huì)更加模糊圖像細(xì)節(jié)和邊緣。
2、均值濾波
均值濾波是指任意一點(diǎn)的像素值,都是周?chē)?N×M?個(gè)像素值的均值。opencv中使用cv2.blur()
實(shí)現(xiàn)代碼與效果如下:
def mean_denoise(noise_image='./noiseimg1.png', result_path='./mean_result1.png', kernel_size=(7,7)):image = cv2.imread(noise_image)image = cv2.blur(image, kernel_size)cv2.imwrite(result_path, image)
原圖與均值濾波效果對(duì)比:
注意:kernel_size越大,濾波范圍越大,去噪效果強(qiáng),但會(huì)導(dǎo)致圖象邊緣模糊。
3、雙邊濾波
參考:https://blog.csdn.net/qq_49478668/article/details/123488527
去噪的同時(shí),考慮到了圖像邊緣信息。
def bilateral_filter_noise(noise_image='./noiseimg1.png', result_path='./bilateral_result1.png'):image = cv2.imread(noise_image)filtered_image = cv2.bilateralFilter(image, 9,200,200)cv2.imwrite(result_path, filtered_image)
原圖與雙邊濾波效果對(duì)比:
注意:
????????cv2.bilateralFilter(image, d=9,sigmaColor=200,sigmaSpace=200)????????● d是在濾波時(shí)選取的空間距離參數(shù),這里表示以當(dāng)前像素點(diǎn)為中心點(diǎn)的直徑。如果該值為非正數(shù),則會(huì)自動(dòng)從參數(shù) sigmaSpace 計(jì)算得到。如果濾波空間較大(d>5),則速度較慢。因此,在實(shí)時(shí)應(yīng)用中,推薦d=5。對(duì)于較大噪聲的離線濾波,可以選擇d=9。
? ? ? ? ● sigmaColor是濾波處理時(shí)選取的顏色差值范圍,該值決定了周?chē)男┫袼攸c(diǎn)能夠參與到濾波中來(lái)。與當(dāng)前像素點(diǎn)的像素值差值小于 sigmaColor 的像素點(diǎn),能夠參與到當(dāng)前的濾波中。該值越大,就說(shuō)明周?chē)性蕉嗟南袼攸c(diǎn)可以參與到運(yùn)算中。該值為0時(shí),濾波失去意義;該值為255時(shí),指定直徑內(nèi)的所有點(diǎn)都能夠參與運(yùn)算。
? ? ? ? ● sigmaSpace是坐標(biāo)空間中的sigma值。它的值越大,說(shuō)明有越多的點(diǎn)能夠參與到濾波計(jì)算中來(lái)。當(dāng)d>0時(shí),無(wú)論sigmaSpace的值如何,d都指定鄰域大小;否則,d與 sigmaSpace的值成比例。
原文鏈接:https://blog.csdn.net/qq_49478668/article/details/123488527