婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > OpenCV-Python實現圖像平滑處理操作

OpenCV-Python實現圖像平滑處理操作

熱門標簽:騰訊地圖標注沒法顯示 南陽打電話機器人 地圖標注自己和別人標注區別 ai電銷機器人的優勢 打電話機器人營銷 聊城語音外呼系統 海外網吧地圖標注注冊 孝感營銷電話機器人效果怎么樣 商家地圖標注海報

什么是圖像平滑處理

在盡量保留圖像原有信息的情況下,過濾掉圖像內部的噪聲,這一過程我們稱之為圖像的平滑處理,所得到的圖像稱為平滑圖像。

那么什么是圖像的噪聲呢?

圖像的噪聲就是圖像中與周圍像素點差異較大的像素點。噪聲的處理就是將其更改為臨近像素點的近似值,使圖像更平滑。

圖像平滑處理的噪聲取值的方式有以下6種:

(1)均值濾波

(2)方框濾波

(3)高斯濾波

(4)中值濾波

(5)雙邊濾波

(6)2D卷積(自定義濾波)

均值濾波

均值濾波是指用當前像素點周圍N*N個像素點的均值來代替當前像素值。使用該方法遍歷處理圖像內的每一個像素點,即可完成整幅圖像的均值濾波。

在進行均值濾波處理時,我們需要考慮對周圍多少個像素點取平均值。通常情況下,我們會以當前像素點為中心,對行數和列數相等的一塊區域內的所有像素點取平均值。

但是邊緣像素點可能不能這樣做,畢竟比如左上角的像素點是沒有左上像素點的,這個時候我們常常會取圖像內存在的周圍鄰域點的平均值。

在OpenCV中,它給我們提供的均值濾波函數為cv2.blur(),其完整定義如下:

def blur(src, ksize, dst=None, anchor=None, borderType=None): 

src:原始圖像

kszie:濾波中心的大小,也就是取平均值的周圍像素點的高度與寬度,比如(5,5),就是取5*5鄰域像素點均值作為結果。

anchor:錨點,其默認值為(-1,1),表示當前計算均值的點位于核的中心點位置。一般使用默認值即可。

borderType:邊界樣式,該值決定了以何種方式處理邊界,一般情況下不需要更改。

了解了該函數的定義,下面我們簡單的來完成一個去噪圖像,具體代碼如下所示:

import cv2

img = cv2.imread("5.jpg")
result_5img = cv2.blur(img, (5, 5))
result_30img= cv2.blur(img, (30, 30))
cv2.imshow("img", img)
cv2.imshow("result_5img", result_5img)
cv2.imshow("result_30img", result_30img)
cv2.waitKey()
cv2.destroyAllWindows()

運行之后,效果如下所示:


從上圖可以看出來,使用(5,5)卷積進行均值濾波處理后圖像雖然模糊,但還可以辨認。而使用(30,30)卷積進行均值濾波,圖像失真非常嚴重。

所以,我們可以得出來,卷積核越大,去噪效果越好,花費的時間越長,同時圖像失真也越嚴重。而實際的處理中,我們需要在失真與去噪之間取得平衡,選取合適的卷積大小。

方框濾波

方框濾波與均值濾波的不同之處在于,方框濾波不會計算像素均值,它可以自由選擇是否對均值濾波的結果進行歸一化,即可以自由選擇濾波結果是鄰域像素值之和的平均值,還是鄰域像素值之和。

在OpenCV中,它提供cv2.boxFilter()函數來實現方框濾波,其完整定義如下:

def boxFilter(src, ddepth, ksize, dst=None, anchor=None, normalize=None, borderType=None): 

src:原始圖像

ddepth:處理結果圖像的圖像深度,一般使用-1表示與原圖像使用相同的圖像深度

ksize:濾波核心的大小

normalize:是否在濾波時進行歸一化處理。當它為1時,表示要進行歸一化處理,也就是鄰域像素值的和除以面積,比如(3,3),公式如下:


當它為0時,表示不需要進行歸一化處理,直接使用鄰域像素值的和。

下面,我們來用程序分別實現歸一化與不歸一化的效果,代碼如下:

import cv2

img = cv2.imread("5.jpg")
result1 = cv2.boxFilter(img, -1, (5, 5))
result2 = cv2.boxFilter(img, -1, (30, 30))
result3 = cv2.boxFilter(img, -1, (2, 2),normalize=0)
cv2.imshow("img", img)
cv2.imshow("result1", result1)
cv2.imshow("result2", result2)
cv2.imshow("result3", result3)
cv2.waitKey()
cv2.destroyAllWindows()

運行之后,顯示的效果如下所示:


可以看到,左下角不需要歸一化處理,這里只取(2,2),如果你取大了,可以試試。因為范圍大了,和一般都會大于255,那么就會造成圖像全是白色。

高斯濾波

在進行均值濾波與方框濾波時,其鄰域內每個像素的權重是相等的。而高斯濾波會將中心點的權重加大,遠離中心點的權重減小,以此來計算鄰域內各個像素值不同權重的和。

在OpenCV中,它給我們提供cv2.GaussianBlur()函數進行高斯濾波,其完整定義如下:

def GaussianBlur(src, ksize, sigmaX, dst=None, sigmaY=None, borderType=None):

src:原始圖像

ksize:濾波核的大小

sigmaX:卷積和在水平方向上(X軸方向)的標準差,其控制的是權重比例

sigmaY:卷積和在垂直方向上(Y軸方向)的標準差,也是控制的是權重比例。如果它為0,只采用sigmaX的值,如果sigmaX與sigmaY都是0,則通過ksize.width和ksize.height計算得到(可選參數)

下面,我們來使用高斯濾波看看效果,代碼如下所示:

import cv2

img = cv2.imread("5.jpg")
result = cv2.GaussianBlur(img, (3, 3), 0, 0)
cv2.imshow("img", img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()

運行之后,效果如下所示:

中值濾波

中值濾波與前面的三種濾波都不同,它不在采用加權求均值的方式計算濾波結果,而是用鄰域內所有像素值的中間值來代替當前像素點的像素值。

簡單點說,就是取當前像素點及其周圍臨近像素點的像素值,將這些值進行排序后,取中間位置的像素值作為當前位置的像素值。

在OpenCV中,它提供給我們cv2.medianBlur()函數來進行中值濾波,其完整定義如下:

def medianBlur(src, ksize, dst=None): 

src:原始圖像

kszie:濾波核的大小

參數就兩個,下面我們來用代碼測試一下:

import cv2

img = cv2.imread("5.jpg")
result = cv2.medianBlur(img, 3)
cv2.imshow("img", img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()

運行之后,顯示效果如下:

可以看到,這里我們將臉上的紅點去掉了。需要特別注意的是,濾波核的大小必須是奇數,矩陣中心點向外衍生必然是奇數,不信可以隨便矩陣取一點試試。

雙邊濾波

雙邊濾波是綜合考慮空間信息和色彩信息的濾波方式,在濾波的過程中能夠有效地保護圖像內的邊緣信息。

前面濾波方式基本只考慮了空間的權重信息,這種情況計算起來比較方便,但是邊緣信息的處理上存在較大問題。而雙邊濾波在處理邊緣時,與當前點色彩相近的像素點給與較大的權重值,而與當前像素點色彩差別大的會給較小的權重,這樣就保護了邊緣信息。

簡單點概括,雙邊濾波在計算某一個像素點的新值時,不僅考慮距離信息,還考慮色彩信息。雙邊濾波即能有效地去除噪聲,又能很好地保護邊緣信息。

在OpenCV中,它給我們提供cv2.bilateralFilter()函數來實現,其完整定義如下:

def bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None):

src:原始圖像

d:在濾波時選取的空間距離參數,這里表示以當前像素點為中心點的直徑。如果該值為非正數,則會從參數sigmaSpace計算得到。如果濾波空間較大,比如d>5,則速度較慢。因此,在實際的應用中,推薦d=5。對于噪聲較大的離線濾波,可以選擇d=9。

sigmaColor:在濾波處理時,選擇的顏色范圍,該值決定了周圍哪些像素點能夠參與到濾波中來。與當前像素點的像素值差值小于sigmaColor的像素點,能夠參與到當前的濾波中。該值越大,就說明周圍有越多的像素點可以參與到運算中。該值為0時,濾波失去意義;該值為255,指定直徑內的所有點都能夠參與運算。

sigmaSpace:坐標空間中的sigma值。它的值越大,說明有越多的點能夠參與到濾波計算中來。當d>0時,無論sigmaSpace的值如何,d都指定鄰域大小;否則,d域sigmaSpace的值成比例。

為了簡單起見,博主這里將兩個sigmaColor與sigmaSpace值設置為相同的。如果它們的值比較小,比如小于10,濾波的效果不太明顯;如果它們的值較大,比如大于150,則濾波效果會比較明顯。

代碼如下所示:

import cv2

img = cv2.imread("5.jpg")
result = cv2.bilateralFilter(img,25,50,50)
cv2.imshow("img", img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()

運行之后,顯示效果如下所示:

2D卷積

在OpenCV中,除了提供上面這些常用的濾波方式之外,還允許用戶自定義卷積核實現卷積操作。這個函數是cv2.Filter2D(),其完整定義如下:

def filter2D(src, ddepth, kernel, dst=None, anchor=None, delta=None, borderType=None): 

src:原始圖像

ddepth:處理結果圖像的深度,-1與原圖像一致。

kernel:卷積核,是一個單通道數組。如果想在處理彩色圖像時,讓每個通道使用不同的核,則必須將彩色圖像分解后使用不同的核完成。

delta:修正值,可選參數。如果該值存在,會在基礎濾波的結果上加上該值作為最終的濾波結果。

下面,我們來使用這個函數看看效果,具體代碼如下所示:

import cv2
import numpy as np

img = cv2.imread("5.jpg")
kernel = np.ones((9,9), np.float32) / 81
result = cv2.filter2D(img, -1, kernel)
cv2.imshow("img", img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()

運行之后,效果如下所示:

到此這篇關于OpenCV-Python實現圖像平滑處理操作的文章就介紹到這了,更多相關OpenCV 圖像平滑處理內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • opencv python簡易文檔之圖像處理算法
  • python opencv圖像處理(素描、懷舊、光照、流年、濾鏡 原理及實現)
  • 基于python的opencv圖像處理實現對斑馬線的檢測示例
  • Python+OpenCV圖像處理——圖像二值化的實現
  • opencv-python基本圖像處理詳解

標簽:楊凌 聊城 南寧 撫州 揚州 六盤水 迪慶 牡丹江

巨人網絡通訊聲明:本文標題《OpenCV-Python實現圖像平滑處理操作》,本文關鍵詞  OpenCV-Python,實現,圖像,平滑,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《OpenCV-Python實現圖像平滑處理操作》相關的同類信息!
  • 本頁收集關于OpenCV-Python實現圖像平滑處理操作的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    免费成人av在线播放| 中文av一区特黄| 91免费国产在线| av中文字幕不卡| 国产suv一区二区三区88区| 国产精品456| 99精品国产视频| 欧洲一区二区三区免费视频| 色乱码一区二区三区88| 色偷偷久久一区二区三区| 色欧美88888久久久久久影院| 97久久超碰国产精品| 91视频国产观看| 欧美三级中文字幕| 日韩手机在线导航| 欧美精品一区二区久久久| 国产午夜精品福利| 国产精品毛片高清在线完整版| 亚洲日本护士毛茸茸| 香蕉成人啪国产精品视频综合网| 午夜精品一区二区三区电影天堂| 蜜臀av性久久久久蜜臀aⅴ四虎| 韩国精品主播一区二区在线观看| 国产99精品国产| 欧美三级韩国三级日本一级| 日韩欧美不卡在线观看视频| 中文字幕乱码久久午夜不卡| 洋洋成人永久网站入口| 另类人妖一区二区av| av不卡在线观看| 日韩视频免费观看高清在线视频| 久久精品一区二区三区不卡牛牛| 亚洲精品免费视频| 另类调教123区| 色狠狠综合天天综合综合| 日韩欧美在线123| 亚洲免费观看在线视频| 久久精品国产网站| 欧美在线小视频| 久久婷婷国产综合精品青草| 亚洲一区二区视频在线观看| 国产精品一区二区在线播放| 欧美日韩一级二级三级| 国产精品青草久久| 蜜桃在线一区二区三区| 日本韩国欧美一区| 中文字幕欧美三区| 狠狠色狠狠色合久久伊人| 色8久久人人97超碰香蕉987| 国产欧美一区二区精品仙草咪| 青青草伊人久久| 色视频一区二区| 国产精品久久久久久亚洲伦| 国精品**一区二区三区在线蜜桃| 在线观看日韩电影| 亚洲色图都市小说| 成人免费福利片| 国产视频一区在线播放| 狠狠色综合播放一区二区| 69久久夜色精品国产69蝌蚪网| 亚洲色图欧美偷拍| 777xxx欧美| 亚洲一区免费视频| 色成人在线视频| 亚洲色图在线看| 99麻豆久久久国产精品免费| 久久久综合激的五月天| 激情综合色综合久久| 日韩欧美中文字幕一区| 免费成人深夜小野草| 欧美精品在线一区二区| 亚洲v中文字幕| 欧美日韩成人一区| 日韩二区三区四区| 日韩视频不卡中文| 韩国一区二区三区| 久久久亚洲精品一区二区三区| 国产一区二区不卡在线| 精品久久久久久亚洲综合网| 久草在线在线精品观看| 久久综合久久99| 丁香网亚洲国际| 亚洲精品福利视频网站| 欧美日韩在线电影| 久久99在线观看| 国产亚洲欧美色| 99久久99久久精品免费看蜜桃| 亚洲精品视频在线观看免费| 欧美三区免费完整视频在线观看| 日韩av高清在线观看| 2023国产精品| 一本大道综合伊人精品热热| 亚洲成人福利片| 精品奇米国产一区二区三区| 懂色av一区二区三区免费观看| 中文字幕中文在线不卡住| 在线观看亚洲成人| 精品一区二区综合| 亚洲三级电影全部在线观看高清| 在线观看国产一区二区| 精品一区二区在线免费观看| 国产精品久久毛片| 91麻豆精品国产自产在线| 国产99久久久国产精品潘金网站| 亚洲区小说区图片区qvod| 欧美一区二区三区在线视频 | 在线观看日韩毛片| 日本不卡视频一二三区| 国产精品久久夜| 欧美人牲a欧美精品| 成人免费毛片嘿嘿连载视频| 日本中文字幕一区二区视频| 国产精品狼人久久影院观看方式| 777色狠狠一区二区三区| 成人18视频日本| 麻豆国产91在线播放| 亚洲精品国产视频| 国产欧美日韩精品a在线观看| 欧美系列在线观看| 99精品视频在线观看免费| 九九九精品视频| 亚洲一二三四区不卡| 国产精品久久免费看| 久久久91精品国产一区二区精品| 在线成人高清不卡| 在线观看欧美精品| 91一区二区三区在线观看| 国产一区二三区好的| 日韩国产欧美在线视频| 亚洲国产一区二区三区| 成人欧美一区二区三区| 国产精品天干天干在观线| 精品国产精品网麻豆系列| 91精品蜜臀在线一区尤物| 欧美日韩一区二区三区在线| 色综合天天综合网天天看片| 播五月开心婷婷综合| 成人一区二区三区视频| 99国产精品视频免费观看| 国产宾馆实践打屁股91| 国产福利精品一区二区| 韩国成人精品a∨在线观看| 看片网站欧美日韩| 久久精品国产成人一区二区三区 | 国产69精品久久久久777| 六月丁香综合在线视频| 免费成人美女在线观看.| 裸体一区二区三区| 久久99精品久久久久久国产越南| 奇米影视一区二区三区小说| 日本美女一区二区| 一区二区三区成人在线视频| 亚洲人成伊人成综合网小说| 国产精品免费aⅴ片在线观看| 国产精品污污网站在线观看| 国产精品麻豆99久久久久久| 亚洲欧美在线观看| 一区二区免费在线播放| 午夜欧美一区二区三区在线播放| 亚洲毛片av在线| 亚洲另类在线视频| 肉色丝袜一区二区| 国产精品夜夜嗨| 91免费版pro下载短视频| 色婷婷激情综合| 欧美一区日本一区韩国一区| 精品国产一区二区国模嫣然| 欧美激情在线一区二区| 亚洲视频狠狠干| 图片区小说区国产精品视频| 免费久久精品视频| 波多野结衣的一区二区三区| 在线观看免费亚洲| 欧美精品一区二区在线播放| 中文字幕一区二区三区在线不卡 | 亚洲福利一区二区三区| 久久99精品久久久| 91丨九色丨蝌蚪丨老版| 欧美日高清视频| 欧美激情一区在线| 日韩激情中文字幕| 春色校园综合激情亚洲| 欧美精品视频www在线观看| 国产日韩欧美综合一区| 视频一区二区中文字幕| 成人午夜视频在线| 日韩欧美成人一区二区| 一区二区三区在线观看国产 | 中文字幕色av一区二区三区| 午夜a成v人精品| 99久久er热在这里只有精品15| 91.麻豆视频| 亚洲精品视频免费看| 国产iv一区二区三区| 日韩一区二区在线看片| 亚洲精品国产a| 成人app软件下载大全免费| 欧美zozozo| 午夜精品久久久久久| 91丝袜呻吟高潮美腿白嫩在线观看|