中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python圖像平滑處理的方法

發布時間:2022-06-14 16:56:58 來源:億速云 閱讀:401 作者:iii 欄目:開發技術

這篇文章主要介紹“python圖像平滑處理的方法”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“python圖像平滑處理的方法”文章能幫助大家解決問題。

前言:

圖像濾波是圖像處理和計算機視覺中最常用、最基本的操作。主要是去除圖像中的噪聲,因為圖像平滑處理過程中往往會使得圖像變的模糊,因此又叫模糊處理。

基本原理

  • 圖像平滑的基本原理是,將噪聲所在像素點的像素值處理為其周圍臨近像素點的值的近似值。

  • 圖像平滑處理的方法有很多,比如均值濾波,方框濾波,高斯濾波,中值濾波,雙邊濾波。

(這里就不講公式推導了)

1均值濾波

在進行均值濾波的時候要考慮需要對周圍多少個像素去平均值,即確定核 的大小,通常情況下都是以當前像素點為中心,讀行數和列數相等的一塊區域內的所有像素點求平均。將計算得到的結果作為該點的像素。

python圖像平滑處理的方法

原始圖像像素

當前像素點為226的位置,我們對其周圍5x5區域內像素點求平均計算方法為:

新值=(197+25+106+156+159+149+40+107+5+71+163+198+226+223+156+222+37+68+233+157+75+193+250+2+42)/25

計算得到的新值即為226像素點位置的新的像素。

其中均值濾波的核如下所示:

python圖像平滑處理的方法

1.1函數語法

在OpenCV中,實現均值濾波的函數是cv2.blur(),語法格式如下:

dst=cv2.blur(src,ksize,anchor,borderType)
  • dst是返回值,表示進行均值濾波后得到的結果

  • src是需要處理的圖像,即原始圖像,圖像的深度有CV_8U,CV_16U,CV16S,CV32F,CV_64F.

  • ksize是核 的大小,

  • anchor是錨點,一般情況該值直接默認即可

  • borderType是邊界樣式,該值決定以何種方式處理邊界,一般情況下不需要考慮該值的取值,直接默認即可。

因此函數cv2.blur()的一般形式為:

dst=cv2.blur(src,ksize)

接下來看一段程序:

import cv2 as cv
img=cv.imread(r'F:\AI\photo\test\lena.jpg')
blurImg=cv.blur(img,(5,5))
print('imgshape',img.shape)
print('blurImg',blurImg.shape)
cv.imshow('img',img)
cv.imshow('blurImg',blurImg)
cv.waitKey()
cv.destroyAllWindows()

python圖像平滑處理的方法

 原始圖像:

python圖像平滑處理的方法

均值濾波后的圖像 

2.高斯濾波

均值濾波中,其鄰域內每個像素的權重都是一樣的,在高斯濾波中,中心點的權重值加大,遠離中心點的權重值減少,在此基礎上計算鄰域內各個像素值不同權重的和。

python圖像平滑處理的方法

高斯濾波卷積核示例

2.1函數語法

dst=cv2.GaussianBlur(src,ksize,sigmaX,sigmaY,borderType)

式中:

  • dst為高斯濾波后得到的結果

  • src是需要處理的圖像,

  • ksize是濾波卷積核。需要注意的是濾波核 的值必須是奇數

  • sigmaX是卷積在水平方向的標準差,或者X方向求導

  • sigmaY是卷積在垂直方向的標準差,或者說Y方向上

  • bordenType是邊界類型

因此高斯濾波的一般形式為:

dst=cv2.GaussianBlur(src,ksize,0,0)

程序演示:

import cv2 as cv
img=cv.imread(r'F:\AI\photo\test\lena.jpg')
GS_blurImg=cv.GaussianBlur(img,(5,5),1,1)
print('imgshape',img.shape)
print('blurImg',GS_blurImg.shape)
cv.imshow('img',img)
cv.imshow('GS_blurImg',GS_blurImg)
cv.waitKey()
cv.destroyAllWindows()

相比原始圖像,高斯濾波處理后的圖像模糊了一些,但是相對于均值濾波來說,要好一些,這是因為高斯濾波卷積核在中心點的權重更高。

3.中值濾波

中值濾波就是將當前像素點及其鄰域內的像素點排序后取中間值作為當前值的像素點。

python圖像平滑處理的方法

中值濾波的處理過程為:將226像素點周期的8個像素點一起排序即5,37,40,68,107,198,223,223,226,所以226像素點的新 的像素值為107.

3.1函數語法

dscv2.medianBlur(src,ksize)

其中需要注意的是ksize核的大小必須是比1大的奇數,比如3,5,7等

import cv2 as cv
img=cv.imread(r'F:\AI\photo\test\lena.jpg')
medianblurImg=cv.medianBlur(img,5)
cv.imshow('img',img)
cv.imshow('medianblurImg',medianblurImg)
cv.waitKey()
cv.destroyAllWindows()

在中值濾波處理中,噪聲成分很難被選中,所以可以在幾乎不影響原有圖像的情況下去除所有的噪聲,但是由于需要進行排序等操作,中值濾波需要的運算較大。中值濾波對椒鹽噪聲去除效果較明顯,下次補充,還有雙邊濾波以及方框濾波后面補充。 

關于“python圖像平滑處理的方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

司法| 淮滨县| 赞皇县| 柘荣县| 雷山县| 和平区| 巫山县| 耿马| 光泽县| 宣汉县| 河北区| 茶陵县| 石景山区| 吕梁市| 德令哈市| 神农架林区| 娄底市| 田东县| 安化县| 甘孜县| 云阳县| 凤阳县| 巴塘县| 新乡县| 建平县| 积石山| 新巴尔虎左旗| 黄浦区| 泗洪县| 拉孜县| 无为县| 阿合奇县| 驻马店市| 宜昌市| 长治县| 拉萨市| 通榆县| 沧源| 闵行区| 宜都市| 甘洛县|