免费人成动漫在线播放r18-免费人成观看在线网-免费人成黄页在线观看日本-免费人成激情视频在线观看冫-jlzzjlzz亚洲大全-jlzzjlzz亚洲日本

二維碼
企資網(wǎng)

掃一掃關注

當前位置: 首頁 » 企資快訊 » 問答式 » 正文

Python從零到壹丨詳解為什么像平滑的兩種非線姓

放大字體  縮小字體 發(fā)布日期:2023-03-15 11:00:49    作者:葉仕源    瀏覽次數(shù):46
導讀

本文分享自華為云社區(qū)《[Python從零到壹] 五十六.圖像增強及運算篇之圖像平滑(中值濾波、雙邊濾波)》,作者: eastmount 。原文詳情:https://bbs.huaweicloud.com/blogs/386509?utm_source=juejin&utm_medium=bbs

本文分享自華為云社區(qū)《[Python從零到壹] 五十六.圖像增強及運算篇之圖像平滑(中值濾波、雙邊濾波)》,作者: eastmount 。

原文詳情:https://bbs.huaweicloud.com/blogs/386509?utm_source=juejin&utm_medium=bbs-ex&utm_campaign=other&utm_content=content

一.中值濾波

前面講述的都是線性平滑濾波,它們的中間像素值都是由鄰域像素值線性加權得到的,接下來將講解一種非線性平滑濾波——中值濾波。中值濾波通過計算每一個像素點某鄰域范圍內所有像素點灰度值的中值,來替換該像素點的灰度值,從而讓周圍的像素值更接近真實情況,消除孤立的噪聲。

中值濾波對脈沖噪聲有良好的濾除作用,特別是在濾除噪聲的同時,能夠保護圖像的邊緣和細節(jié),使之不被模糊處理,這些優(yōu)良特性是線性濾波方法所不具有的,從而使其常常被應用于消除圖像中的椒鹽噪聲[1-2]。

中值濾波算法的計算過程如圖1所示。選擇含有五個點的窗口,依次掃描該窗口中的像素,每個像素點所對應的灰度值按照升序或降序排列,然后獲取最中間的值來替換該點的灰度值。

上圖展示的是矩形窗口,常用的窗口還包括正方形、十字形、環(huán)形和圓形等,不同形狀的窗口會帶來不同的過濾效果,其中正方形和圓形窗口適合于外輪廓邊緣較長的圖像,十字形窗口適合于帶尖角形狀的圖像。

OpenCV將中值濾波封裝在medianBlur()函數(shù)中,其函數(shù)原型如下所示:

  • dst = medianBlur(src, ksize[, dst])
    – src表示待處理的輸入圖像
    – dst表示輸出圖像,其大小和類型與輸入圖像相同
    – ksize表示內核大小,其值必須是大于1的奇數(shù),如3、5、7等

    下面是調用medianBlur()函數(shù)實現(xiàn)中值濾波的代碼。

    # -*- coding: utf-8 -*-# By:Eastmountimport cv2 import numpy as np import matplotlib.pyplot as plt#讀取圖片img = cv2.imread('lena-zs.png')source = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)#中值濾波result = cv2.medianBlur(source, 3)#用來正常顯示中文標簽plt.rcParams['font.sans-serif']=['SimHei']#顯示圖形titles = ['原始圖像', '中值濾波']images = [source, result]for i in range(2): plt.subplot(1,2,i+1), plt.imshow(images[i], 'gray') plt.title(titles[i]) plt.xticks([]),plt.yticks([])plt.show()

    其運行結果如圖2所示,它有效地過濾掉了“l(fā)ena”圖中的噪聲,并且很好地保護了圖像的邊緣信息,使之不被模糊處理。

    二.雙邊濾波

    雙邊濾波(Bilateral filter)是由Tomasi和Manduchi在1998年發(fā)明的一種各向異性濾波,它一種非線性的圖像平滑方法,結合了圖像的空間鄰近度和像素值相似度(即空間域和值域)的一種折中處理,從而達到保邊去噪的目的。雙邊濾波的優(yōu)勢是能夠做到邊緣的保護,其他的均值濾波、方框濾波和高斯濾波在去除噪聲的同時,都會有較明顯的邊緣模糊,對于圖像高頻細節(jié)的保護效果并不好[3]。

    雙邊濾波比高斯濾波多了一個高斯方差sigma-d,它是基于空間分布的高斯濾波函數(shù)。所以在圖像邊緣附近,離的較遠的像素點不會過于影響到圖像邊緣上的像素點,從而保證了圖像邊緣附近的像素值得以保存。但是雙邊濾波也存在一定的缺陷,由于它保存了過多的高頻信息,雙邊濾波不能有效地過濾掉彩色圖像中的高頻噪聲,只能夠對低頻信息進行較好地去噪[4]。

    在雙邊濾波器中,輸出的像素值依賴于鄰域像素值的加權值組合,對輸入圖像進行局部加權平均得到輸出圖像 的像素值,其公式如下所示:

    式中表示中心點(x,y)的(2N+1)×(2N+1)的領域像素,值依賴于領域像素值的加權平均。權重系數(shù)取決于空間域核(domain)和值域核(range)的乘積。空間域核的定義如公式(2)所示。

    值域核的定義如公式(3)所示。

    兩者相乘之后,就會產生依賴于數(shù)據(jù)的雙邊濾波權重函數(shù),如下所示:

    從式子(4)可以看出,雙邊濾波器的加權系數(shù)是空間鄰近度因子和像素亮度相似因子的非線性組合。前者隨著像素點與中心點之間歐幾里德距離的增加而減小,后者隨著像素亮度之差的增大而減小[5-6]。

    在圖像變化平緩的區(qū)域,鄰域內亮度值相差不大,雙邊濾波器轉化為高斯低通濾波器;在圖像變化劇烈的區(qū)域,鄰域內像素亮度值相差較大,濾波器利用邊緣點附近亮度值相近的像素點的亮度平均值替代原亮度值。因此,雙邊濾波器既平滑了圖像,又保持了圖像邊緣,其原理圖如圖3所示。

    OpenCV將中值濾波封裝在bilateralFilter()函數(shù)中,其函數(shù)原型如下所示:

  • dst = bilateralFilter(src, d, sigmaColor, sigmaSpace[, dst[, borderType]])
    – src表示待處理的輸入圖像
    – dst表示輸出圖像,其大小和類型與輸入圖像相同
    – d表示在過濾期間使用的每個像素鄰域的直徑。如果這個值我們設其為非正數(shù),則它會由sigmaSpace計算得出
    – sigmaColor表示顏色空間的標準方差。該值越大,表明像素鄰域內較遠的顏色會混合在一起,從而產生更大面積的半相等顏色區(qū)域
    – sigmaSpace表示坐標空間的標準方差。該值越大,表明像素的顏色足夠接近,從而使得越遠的像素會相互影響,更大的區(qū)域中相似的顏色獲取相同的顏色,當d>0,d指定了鄰域大小且與sigmaSpace無關。否則,d正比于sigmaSpace
    – borderType表示邊框模式,用于推斷圖像外部像素的某種邊界模式,默認值為BORDER_DEFAULT,可省略

    下面是調用bilateralFilter()函數(shù)實現(xiàn)雙邊濾波的代碼,其中d為15,sigmaColor設置為150,sigmaSpace設置為150。

    # -*- coding: utf-8 -*-# By:Eastmountimport cv2 import numpy as np import matplotlib.pyplot as plt #讀取圖片img = cv2.imread('lena-zs.png')source = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #雙邊濾波result = cv2.bilateralFilter(source, 15, 150, 150)#用來正常顯示中文標簽plt.rcParams['font.sans-serif']=['SimHei']#顯示圖形titles = ['原始圖像', '雙邊濾波'] images = [source, result]for i in range(2): plt.subplot(1,2,i+1), plt.imshow(images[i], 'gray') plt.title(titles[i]) plt.xticks([]),plt.yticks([])plt.show()

    其運行結果如圖4所示:

    三.總結

    本文主要講解了常用于消除噪聲的圖像平滑方法,常見方法包括三種線性濾波(均值濾波、方框濾波、高斯濾波)和兩種非線性濾波(中值濾波、雙邊濾波)。這篇文章介紹了中值濾波和雙邊濾波,通過原理和代碼進行對比,分別講述了各種濾波方法的優(yōu)缺點,有效地消除了圖像的噪聲,并保留圖像的邊緣輪廓。

    參考文獻:

  • [1] 岡薩雷斯著,阮秋琦譯. 數(shù)字圖像處理(第3版)[M]. 北京:電子工業(yè)出版社,2013.
  • [2] 阮秋琦. 數(shù)字圖像處理學(第3版)[M]. 北京:電子工業(yè)出版社,2008.
  • [3] 陳初俠. 圖像濾波及邊緣檢測與增強技術研究[D].合肥工業(yè)大學, 2009.
  • [4] Eastmount. [Python圖像處理] 四.圖像平滑之均值濾波、方框濾波、高斯濾波及中值濾波[EB/OL]. (2018-09-02). https://blog.csdn.net/Eastmount/article/details/82216380.
  • [5] Eastmount. [數(shù)字圖像處理] 七.MFC圖像增強之圖像普通平滑、高斯平滑、Laplacian、Sobel、Prewitt銳化詳解[EB/OL]. (2015-06-08). https://blog.csdn.net/eastmount/article/ details/46378783.
  • [6] 毛星云. [OpenCV入門教程之九] 非線性濾波專場:中值濾波、雙邊濾波[EB/OL]. (2014-04-08). https://blog.csdn.net/poem_qianmo/article/details/23184547.
  • [7] C. Tomasi, R Manduchi. Bilateral Filtering for Gray and Color images[C]. Proceedings of the IEEE International Conference on Computer Vision, Bombay, India. 1998:839-846.

    關注#華為云開發(fā)者聯(lián)盟#,第一時間了解華為云新鮮技術~

  •  
    (文/葉仕源)
    免責聲明
    本文僅代表作發(fā)布者:葉仕源個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發(fā)現(xiàn),立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
     

    Copyright ? 2016 - 2025 - 企資網(wǎng) 48903.COM All Rights Reserved 粵公網(wǎng)安備 44030702000589號

    粵ICP備16078936號

    微信

    關注
    微信

    微信二維碼

    WAP二維碼

    客服

    聯(lián)系
    客服

    聯(lián)系客服:

    在線QQ: 303377504

    客服電話: 020-82301567

    E_mail郵箱: weilaitui@qq.com

    微信公眾號: weishitui

    客服001 客服002 客服003

    工作時間:

    周一至周五: 09:00 - 18:00

    反饋

    用戶
    反饋

    主站蜘蛛池模板: 曰批免费动漫视频播放免费 | 77788色淫网站免费观看 | 黄色影片在线播放 | 中文字幕日韩亚洲 | 国产黄大片在线观看视频 | 亚洲欧美日韩国产精品网 | 欧美视频日韩专区午夜 | ass日本医生pics | 一区二区在线视频观看 | 91丝袜足控免费网站xx | 精选国产门事件福利在线观看 | 亚洲欧美国产精品久久久 | 天堂va欧美va亚洲va国产 | 日韩伦理一区 | 欧美一级日韩一级亚洲一级va | 日本黄网站 | 在线日本人观看成本人视频 | 日一区二区三区 | 久久久久成人精品免费播放动漫 | 老司机午夜精品视频在线观看免费 | 欧美另类性| 一级毛片人与动免费观看 | 92看片淫黄大片欧美看国产片 | 国产网站麻豆精品视频 | 久久综合狠狠综合久久 | 国产精品视频一区二区三区经 | 久久6热 | 天天摸夜夜摸爽爽狠狠婷婷97 | 中文字幕网址 | 在线免费黄网 | 成人美女隐私免费 | 色哟哟www网站入口成人学校 | 日本高清在线一区 | 中文字幕丰满孑伦 | 91青草久久久久久清纯 | 最近中文字幕 | 手机一级片 | 亚洲福利天堂 | 甜性涩爱免费在线观看 | 亚洲国产中文字幕 | 天天操天天干天天拍 |