最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python OpenCV之常用濾波器使用詳解

 更新時(shí)間:2022年04月07日 11:16:19   作者:侯小啾  
OpenCV中常用的幾種濾波器有:均值濾波器、中值濾波器、高斯濾波器、雙邊濾波器,本文將通過示例詳細(xì)講解這幾種濾波器的使用,需要的可以參考一下

1. 濾波器

1.1 什么是濾波器

濾波器是對(duì)圖像做平滑處理 的一種常用工具。

平滑處理即在盡可能地保留原圖像信息的情況下,對(duì)像素值進(jìn)行微調(diào),使鄰近的像素值之間,值的大小趨于“平滑”,以去除圖像內(nèi)的噪聲、降低細(xì)節(jié)層次信息等的一系列的操作過程。本篇blog將為大家展示OpenCV中的均值濾波器 、中值濾波器 、高斯濾波器 和 雙邊濾波器。

濾波器的算法邏輯為,指定一個(gè)濾波核的大小(該大小表示參與計(jì)算的像素?cái)?shù)據(jù)的范圍),以圖像中的每一個(gè)像素都作為波的核心,通過該范圍內(nèi)的數(shù)據(jù),以一定的計(jì)算方式進(jìn)行計(jì)算,將計(jì)算結(jié)果該值賦值給該像素。

1.2 關(guān)于濾波核

以大小為n×n的濾波核為例,對(duì)于每一個(gè)像素?cái)?shù)據(jù),我們可以在數(shù)組中得到以一個(gè)像素為中心的n×n的矩陣,此即參與計(jì)算的數(shù)據(jù)的范圍(邊界)。這樣的矩陣結(jié)構(gòu)即被稱為濾波核。

1.3 素材選擇

使用圖像《龍門石窟》(longmen.jpg) shape:(350, 600, 3)

2.均值濾波器 cv2.blur()

2.1 語法簡(jiǎn)介

均值濾波器,也稱低通濾波器

顧名思義,均值濾波器即對(duì)濾波核內(nèi)的數(shù)據(jù)求均值,然后將這個(gè)值賦值給矩陣核心位置。

均值濾波器可以使用cv2.blur() 方法實(shí)現(xiàn)

cv2.blur()的語法:

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

其中

  • scr 即圖像
  • ksize 濾波核大小。使用一個(gè)元組表示,形如(a, b),a表示height(高度),b表示width(寬度)。
  • anchor 波核錨點(diǎn)
  • borderType 邊界類型

下邊以3×3,5×5,10×10三種濾波核為例,分別展示圖像經(jīng)過均值濾波器處理后的效果。

2.2 代碼示例

2.2.1 3×3 濾波核為例

import cv2
img = cv2.imread("longmen.jpg")
dst1 = cv2.blur(img, (3, 3))
cv2.imshow("3*3", dst1)
cv2.waitKey()
cv2.destroyAllWindows()

濾波效果如下:

2.2.2 5×5 濾波核為例

import cv2
img = cv2.imread("longmen.jpg")
dst2 = cv2.blur(img, (5, 5))
cv2.imshow("5*5", dst2)
cv2.waitKey()
cv2.destroyAllWindows()

濾波效果如下:

2.2.3 10×10濾波核為例

import cv2
img = cv2.imread("longmen.jpg")
dst3 = cv2.blur(img, (10, 10))
cv2.imshow("10*10", dst3)
cv2.waitKey()
cv2.destroyAllWindows()

可以看出,濾波核大小越大,圖像越趨于模糊。

3. 中值濾波器 cv2.medianBlur()

中值濾波器,即對(duì)濾波核內(nèi)所有數(shù)據(jù)排序,將中間值賦值給濾波核核心位置的數(shù)字。

medianBlur(src, ksize, dst=None)

其中 ksize必須是奇數(shù),是偶數(shù)的話會(huì)發(fā)生報(bào)錯(cuò)。

不同于均值濾波器的方法,cv2.blur(),cv2.blur()的ksize參數(shù)是一個(gè)元組,而cv2.blur()的ksize參數(shù)是一個(gè)數(shù)值。

代碼示例

import cv2
img = cv2.imread("longmen.jpg")
dst1 = cv2.medianBlur(img, 3)
cv2.imshow("3*3", dst1)
cv2.waitKey()
cv2.destroyAllWindows()

濾波后效果如下:

4. 高斯濾波器 cv2.GaussianBlur()

高斯濾波器也被稱為高斯模糊 或 高斯平滑 。

高斯濾波器可以在降低圖片噪聲、細(xì)節(jié)層次的同時(shí)保留更多的圖像信息,使經(jīng)過處理的圖像呈現(xiàn)出“磨砂玻璃”的濾鏡效果。

使用均值濾波時(shí),每個(gè)像素都是均等權(quán)重的。使用高斯濾波器求的是不同權(quán)重下的均值,越靠近核心的像素的權(quán)重越大,約靠近邊緣的像素的權(quán)重則越小。

與濾波核對(duì)應(yīng)的由每個(gè)數(shù)據(jù)權(quán)重組成的矩陣結(jié)構(gòu),是一個(gè)卷積核。卷積核中所有權(quán)重值的和為1。卷積核中的數(shù)值會(huì)隨著核的大小而變化。

OpenCV使用cv2.GaussianBlur()方法實(shí)現(xiàn)高斯濾波器。其語法如下:

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

其中

  • src 為目標(biāo)圖像
  • ksize 是濾波核大小,寬高必須是奇數(shù) 。格式為是元組形式。

修改sigmaX 和 sigmaY都會(huì)改變卷積核中的權(quán)重值。這里涉及卷積方面的知識(shí)。

borderType 是邊界類型。

以9×9的濾波核為例

import cv2
img = cv2.imread("longmen.jpg")
dst1 = cv2.GaussianBlur(img, (9, 9), 0, 0)
cv2.imshow("9*9", dst1)
cv2.waitKey()
cv2.destroyAllWindows()

濾波后效果如下:

5. 雙邊濾波器 cv2.bilateralFilter()

前三種濾波方式都會(huì)使圖像變得平滑的同時(shí),邊緣區(qū)域變得模糊不清。

雙邊濾波是可以在濾波過程中起到保護(hù)圖像邊界信息作用的濾波操作方法。

其邏輯為:

如果圖像在邊緣區(qū)域,則加大邊緣像素的權(quán)重,盡可能地讓邊緣區(qū)域的像素值保持不變。如果不在邊緣區(qū)域(在平坦區(qū)域),則使用類似高斯濾波器的算法進(jìn)行。

雙邊濾波器的語法為:

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

scr 即目標(biāo)圖像

d過濾期間使用的每個(gè)像素鄰域的直徑。如果為非正,則根據(jù)sigmaSpace計(jì)算。即如果為15,則表示15×15的濾波核。

sigmaColor參與計(jì)算的顏色的范圍,只有像素小于這個(gè)值時(shí),以其為核心的濾波核才參與濾波計(jì)算。否則不參與。當(dāng)sigmaColor值為255時(shí),表示所有像素值為核心的濾波核都會(huì)參與。

sigmaSpace坐標(biāo)空間的σ \sigmaσ值,σ \sigmaσ越大,參與計(jì)算的像素?cái)?shù)量就越多。

borderType邊界的樣式。

還以圖片"longmen.jpg"為例,

選擇20×20的濾波核,

參與計(jì)算的像素值范圍為:小于125的像素值;

坐標(biāo)空間的σ \sigmaσ值為,200

import cv2
img = cv2.imread("longmen.jpg")
# 雙邊濾波,選取范圍直徑為15,顏色范圍為125
dst = cv2.bilateralFilter(img, 15, 125, 200)
cv2.imshow("bilateral", dst)
cv2.waitKey()
cv2.destroyAllWindows()

雙邊濾波效果如下:

可以看出,相比以上濾波效果,雙邊濾波保留了較清晰的圖像邊緣信息。

到此這篇關(guān)于Python OpenCV之常用濾波器使用詳解的文章就介紹到這了,更多相關(guān)Python OpenCV濾波器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python修改文件往指定行插入內(nèi)容的實(shí)例

    Python修改文件往指定行插入內(nèi)容的實(shí)例

    今天小編就為大家分享一篇Python修改文件往指定行插入內(nèi)容的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python實(shí)現(xiàn)免費(fèi)音樂下載器

    Python實(shí)現(xiàn)免費(fèi)音樂下載器

    本文主要為大家介紹了通過Python實(shí)現(xiàn)的免費(fèi)音樂下載器,文中的示例代碼講解詳細(xì),對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的小伙伴可以學(xué)習(xí)一下
    2021-12-12
  • flask 框架操作MySQL數(shù)據(jù)庫(kù)簡(jiǎn)單示例

    flask 框架操作MySQL數(shù)據(jù)庫(kù)簡(jiǎn)單示例

    這篇文章主要介紹了flask 框架操作MySQL數(shù)據(jù)庫(kù),結(jié)合實(shí)例形式詳細(xì)分析了flask框架操作MySQL數(shù)據(jù)庫(kù)的連接、表格創(chuàng)建、數(shù)據(jù)增刪改查等相關(guān)使用技巧,需要的朋友可以參考下
    2020-02-02
  • Python 實(shí)現(xiàn)鍵盤鼠標(biāo)按鍵模擬

    Python 實(shí)現(xiàn)鍵盤鼠標(biāo)按鍵模擬

    這篇文章主要介紹了Python 實(shí)現(xiàn)鍵盤按鍵模擬的方法,幫助大家提高辦公效率,感興趣的朋友可以了解下
    2020-11-11
  • 詳解Python+Matplotlib繪制面積圖&熱力圖

    詳解Python+Matplotlib繪制面積圖&熱力圖

    這篇文章主要介紹了如何利用Python+Matplotlib繪制面積圖喝熱力圖,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-04-04
  • 使用Python封裝excel操作指南

    使用Python封裝excel操作指南

    這篇文章主要給大家介紹了關(guān)于使用Python封裝excel操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • python判斷文件是否存在,不存在就創(chuàng)建一個(gè)的實(shí)例

    python判斷文件是否存在,不存在就創(chuàng)建一個(gè)的實(shí)例

    今天小編就為大家分享一篇python判斷文件是否存在,不存在就創(chuàng)建一個(gè)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Python 數(shù)據(jù)分析之Beautiful Soup 提取頁面信息

    Python 數(shù)據(jù)分析之Beautiful Soup 提取頁面信息

    Beautiful Soup 提供一些簡(jiǎn)單的、python 式的函數(shù)用來處理導(dǎo)航、搜索、修改分析樹等功能。它是一個(gè)工具箱,通過解析文檔為用戶提供需要抓取的數(shù)據(jù),因?yàn)楹?jiǎn)單,所以不需要多少代碼就可以寫出一個(gè)完整的應(yīng)用程序
    2021-10-10
  • 如何在Django配置文件里配置session鏈接

    如何在Django配置文件里配置session鏈接

    這篇文章主要介紹了如何在Django配置文件里配置session鏈接,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 詳解Django之a(chǎn)uth模塊(用戶認(rèn)證)

    詳解Django之a(chǎn)uth模塊(用戶認(rèn)證)

    這篇文章主要介紹了詳解Django之a(chǎn)uth模塊(用戶認(rèn)證),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04

最新評(píng)論

平南县| 咸宁市| 固原市| 金堂县| 新密市| 台南市| 湘西| 彭水| 屯昌县| 古蔺县| 正蓝旗| 台东县| 清镇市| 阿拉善盟| 金门县| 新晃| 新蔡县| 江津市| 安新县| 兴安县| 乌兰察布市| 兴文县| 临澧县| 罗田县| 什邡市| 白水县| 育儿| 营口市| 宁远县| 临夏县| 金秀| 浪卡子县| 土默特右旗| 孝感市| 襄城县| 望奎县| 南岸区| 增城市| 泰州市| 广南县| 蓬安县|