国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解

這篇具有很好參考價(jià)值的文章主要介紹了CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

  1. 高斯模糊GaussianBlur()中參數(shù)詳解
    1.1. 由參數(shù)解釋產(chǎn)生的問題
  2. 深入理解前的準(zhǔn)備:高斯函數(shù)、圖像濾波處理及卷積核
  3. 解釋1.1的問題
  4. 權(quán)重矩陣、高斯模糊的流程

摘要

  1. 高斯濾波是一種線性平滑濾波
  2. 高斯濾波是對(duì)整幅圖像進(jìn)行加權(quán)平均的過程,每一個(gè)像素點(diǎn)的值都由其本身和鄰域內(nèi)的其他像素值經(jīng)過加權(quán)平均后得到。高斯濾波的具體操作是:用一個(gè)模板(或稱卷積、掩模)掃描圖像中的每一個(gè)像素,用模板確定的鄰域內(nèi)像素的加權(quán)平均灰度值去替代模板中心像素點(diǎn)的值。
  3. 基于二維高斯函數(shù),構(gòu)建權(quán)重矩陣,進(jìn)而構(gòu)建高斯核,最終對(duì)每個(gè)像素點(diǎn)進(jìn)行濾波處理(平滑、去噪)

1.高斯模糊GaussianBlur()中參數(shù)詳解

1)原型:

  • cv2.GaussianBlur( SRC,ksize,sigmaX [,DST [,sigmaY [,borderType ] ] ] ) →DST

2)參數(shù):

  • src –輸入圖像;圖像可以具有任何數(shù)量的信道,其獨(dú)立地處理的,但深度應(yīng)CV_8U,CV_16U,CV_16S,CV_32F或CV_64F。
  • dst –輸出與圖像大小和類型相同的圖像src。
  • ksize –高斯核大小。 ksize.width 并且 ksize.height 可以有所不同,但它們都必須是正數(shù)和奇數(shù)?;蛘撸鼈兛梢詾榱?,然后從計(jì)算 sigma*。
  • sigmaX – X方向上的高斯核標(biāo)準(zhǔn)偏差。
  • sigmaY – Y方向上的高斯核標(biāo)準(zhǔn)差;如果 sigmaY 為零,則將其設(shè)置為等于 sigmaX;如果兩個(gè)西格瑪均為零,則分別根據(jù)ksize.width 和 進(jìn)行計(jì)算 ksize.height(getGaussianKernel()有關(guān)詳細(xì)信息,請(qǐng)參見 link);完全控制的結(jié)果,無論這一切的語義未來可能的修改,建議指定所有的ksize,sigmaX和sigmaY。
    borderType –像素外推方法。
1.1.由參數(shù)解釋產(chǎn)生的問題

??? 不知道你初次看到這些參數(shù)是否很迷惑,是否能迅速理解其代表的含義和作用,反正我是迷的很,在我們對(duì)GaussianBlur()進(jìn)行簡(jiǎn)單使用時(shí),很多時(shí)候我們并不理解我們所設(shè)置的參數(shù)的內(nèi)涵及其背后的處理是怎么樣的,在我的學(xué)習(xí)過程中,我提出了如下的幾個(gè)問題

  1. 高斯核是什么?ksize作用是什么或者說起到什么效果?
  2. 為什么存在對(duì)兩個(gè)標(biāo)準(zhǔn)差的設(shè)置?二維高斯函數(shù)不也只有一個(gè)標(biāo)準(zhǔn)差嗎?
  3. 高斯模糊的具體實(shí)現(xiàn)流程

這些問題先放一下,先來看一下必要的準(zhǔn)備知識(shí)

2.高斯函數(shù)、卷積核

首先來看高斯分布(即正態(tài)分布):
正態(tài)分布:
X ~ CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解:隨機(jī)變量X的取值x_i和其對(duì)應(yīng)的概率值P(X = x_i) 滿足正態(tài)分布(高斯函數(shù))

2.1 一維高斯分布

概率密度函數(shù)(高斯函數(shù)):CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解

2.2二維高斯分布

概率密度函數(shù):這里的u、v對(duì)應(yīng)圖像坐標(biāo)系下像素點(diǎn)的坐標(biāo)
CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解
可視化圖片為:該圖來源于link
CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解

2.3線性濾波處理及卷積核
線性濾波與卷積的基本概念

??? ??? 線性濾波可以說是圖像處理最基本的方法,它可以允許我們對(duì)圖像進(jìn)行處理,產(chǎn)生很多不同的效果。做法很簡(jiǎn)單。首先,我們有一個(gè)二維的濾波器矩陣(有個(gè)高大上的名字叫卷積核)和一個(gè)要處理的二維圖像。然后,對(duì)于圖像的每一個(gè)像素點(diǎn),計(jì)算它的鄰域像素和濾波器矩陣的對(duì)應(yīng)元素的乘積,然后加起來,作為該像素位置的值。這樣就完成了濾波過程。
CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解
關(guān)于卷積核的具體處理實(shí)例可在這里查看,便于理解:link
貼一張那篇文章中的實(shí)例圖:
CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解

3.解釋1.1的問題

3.1高斯核是什么?ksize作用是什么或者說起到什么效果?
  • 高斯核可看作卷積核,同樣為二維濾波器矩陣,不同的是高斯核在普通卷積核的基礎(chǔ)上進(jìn)行了加權(quán)處理(后面會(huì)講的權(quán)重矩陣)
  • ksize即規(guī)定這個(gè)二維濾波器矩陣的形狀
3.2為什么存在對(duì)兩個(gè)標(biāo)準(zhǔn)差的設(shè)置?二維高斯函數(shù)不也只有一個(gè)標(biāo)準(zhǔn)差嗎?

??? ??? 由cv2.GaussianBlur()原型我們知道,存在兩個(gè)標(biāo)準(zhǔn)差sigmaX和sigmaY的設(shè)置,部分博客中會(huì)提到這兩個(gè)sigma分別是對(duì)X,Y方向(也可說u、v方向,都是針對(duì)圖像坐標(biāo)系)的標(biāo)準(zhǔn)差,但基本均未給出其處理邏輯、過程,讓人很是迷惑。

關(guān)于參數(shù)的問題,當(dāng)然要看官方文檔/源代碼

首先,cv2.GaussianBlur中調(diào)用了getGaussianKernel()接口

那么來看getGaussianKernel:
CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解
??? ??? 這個(gè)函數(shù)可以根據(jù)ksize和sigma求出對(duì)應(yīng)的高斯核,而返回值是一個(gè)一維高斯核。
??? ??? 其中需要注意的是,如果sigma為非正數(shù)(負(fù)數(shù)或0)的話,就會(huì)根據(jù)ksize來自動(dòng)計(jì)算sigma,計(jì)算公式為sigma = 0.3*((ksize-1)*0.5-1)+0.8

??? ??? 在官方解釋中,我們可以看到:兩個(gè)這樣產(chǎn)生的一維高斯核可以傳遞給sepFilter2D函數(shù)

那我們來看看這個(gè)函數(shù)是怎么處理這倆個(gè)一維高斯核的:
CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解
??? ??? cv2.sepFilter2D函數(shù)傳入兩個(gè)一維kernel,然后對(duì)圖像的每一行以kernelX為卷積核做卷積,對(duì)結(jié)果的每一列以kernelY為卷積核做卷積,最后歸一化得到的高斯濾波后的圖像。

對(duì) 這 個(gè) 問 題 我 們 得 出 結(jié) 論 : \color{#FF3030}{對(duì)這個(gè)問題我們得出結(jié)論:} 對(duì)個(gè)結(jié)opencv實(shí)現(xiàn)的高斯濾波,是對(duì)傳入的sigmaX,
sigmaY分別產(chǎn)生兩個(gè)一維卷積核,然后分別再行和列上做卷積,其中sigmaX和sigmaY如果沒有傳入?yún)?shù),則由ksize計(jì)算得到。

4.權(quán)重矩陣、高斯模糊的過程

??? ??? 高斯模糊或者說高斯濾波(高斯核)對(duì)圖像進(jìn)行濾波處理的一大特點(diǎn)就是對(duì)中心點(diǎn)鄰域像素值進(jìn)行‘加權(quán)平均’后將值賦予中心像素點(diǎn),這里便用到了權(quán)重矩陣,該矩陣就是基于二維高斯函數(shù)(概率密度函數(shù))得到的。

偷懶一下,這部分基本未更改,來自link

權(quán)重矩陣:
假設(shè)高斯核(3*3),即對(duì)中心點(diǎn)領(lǐng)域內(nèi)8個(gè)點(diǎn)進(jìn)行加權(quán)平均,那么原始矩陣如下:
CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解
假定在此矩陣中的中心點(diǎn)的坐標(biāo)是(0,0),那么距離它最近的8個(gè)點(diǎn)的坐標(biāo)如上圖所示。

為了計(jì)算權(quán)重矩陣,需要自己設(shè)定σ模糊半徑(指的就是你中心點(diǎn)與周圍像素的距離取值后所確定的值)。我們來定σ=1.5,則模糊半徑為1.5的權(quán)重矩陣如下:
CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解

為了完成權(quán)重矩陣的歸一化,我們還需要對(duì)上面的各值進(jìn)行除于他們的總值的計(jì)算,目的是讓最終的圖像通道的權(quán)重總值為1,不然使用總值大于1的卷積濾鏡會(huì)讓圖像偏亮,小于1的卷積濾鏡會(huì)讓圖像偏暗。這九個(gè)權(quán)重值的總和等于0.4787147,所以我們直接進(jìn)行除法運(yùn)算,得到以下的權(quán)重矩陣。
這個(gè)權(quán)重矩陣就是我們最終得到的高斯核??!即濾波器矩陣
CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解
假設(shè)我們有一個(gè)圖像矩陣也就是未經(jīng)過處理的圖像矩陣,他們的灰度值如下圖所示(如果是彩色RGB圖像則需要分別計(jì)算3個(gè)通道的色值):
CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解
高斯模糊后的灰度值矩陣,有效數(shù)據(jù)是中心點(diǎn)數(shù)值
CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解
對(duì)一個(gè)圖像的所有點(diǎn)都進(jìn)行如上過程,就能最終得到高斯模糊后的圖像。

參考文檔:
link1
link2
link3
link4
link5文章來源地址http://www.zghlxwxcb.cn/news/detail-451616.html

到了這里,關(guān)于CV2逐步學(xué)習(xí)-2:cv2.GaussianBlur()詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • cv2.contourArea函數(shù)詳解

    cv2.contourArea函數(shù)詳解

    問題 :cv2.findContours找到所有的輪廓之后,想取出包含面積最大的輪廓,用cv2.contourArea算一下,但是得到的結(jié)果跟實(shí)際差別相當(dāng)大,最大輪廓面積的計(jì)算成很小的一個(gè)值,而其中一個(gè)不太起眼的區(qū)域被計(jì)算得倒最大的面積。 findContours() 提取輪廓, contourArea() 計(jì)算輪廓面積。

    2024年02月11日
    瀏覽(86)
  • cv2.minAreaRect函數(shù)詳解

    cv2.minAreaRect函數(shù)詳解

    一、cv2.minAreaRect函數(shù)作?:返回不規(guī)則四邊形的最?外接矩形 二、opencv4.2版本: ??????? 1、輸入:多邊形輪廓形點(diǎn) ??????? 2、輸出:最?外接矩形的中?點(diǎn)坐標(biāo)x,y,寬?w,h,?度anlge 三、angle角度解釋: ????????x軸逆時(shí)針旋轉(zhuǎn)最先重合的邊為w,此時(shí)x軸逆時(shí)針旋轉(zhuǎn)

    2024年02月13日
    瀏覽(91)
  • 圖片縮放cv2.resize()詳解

    圖片縮放cv2.resize()詳解

    resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None) 參數(shù)解釋 : 參數(shù) 解釋 src 輸入原圖像 dsize 輸出圖像的大小,方式:(寬,高) fx width方向的縮放比例 fy height方向的縮放比例 interpolation 插值方式,默認(rèn)為雙線性插值 scr、dsize是必傳參數(shù),fx、fy、interpolation是可選參數(shù)。 圖片進(jìn)

    2023年04月19日
    瀏覽(95)
  • Opencv cv2.putText 函數(shù)詳解

    Opencv cv2.putText 函數(shù)詳解

    具體函數(shù)如下: 函數(shù)源碼如下: 對(duì)應(yīng)的參數(shù)如下: 參數(shù) 具體表述 image 繪制的圖像 text 繪制的文本 org 文本在圖像中顯示的坐標(biāo),用元組表示格式為(X坐標(biāo),Y坐標(biāo)) font 文本字體類型,值可以為 FONT_HERSHEY_SIMPLEX 、 FONT_HERSHEY_PLAIN fontScale 字體比例因子乘以font-specific基本大小 c

    2024年02月09日
    瀏覽(88)
  • opencv 邊緣檢測(cè) cv2.Canny()詳解

    ????? 個(gè)人簡(jiǎn)介: 深度學(xué)習(xí)圖像領(lǐng)域工作者 ?? 總結(jié)鏈接: ???????????? 鏈接中主要是個(gè)人工作的總結(jié),每個(gè)鏈接都是一些常用demo,代碼直接復(fù)制運(yùn)行即可。包括: ?????????????????????? 1.工作中常用深度學(xué)習(xí)腳本 ?????????????????????? 2.to

    2024年02月03日
    瀏覽(111)
  • Python中cv2.Canny() 函數(shù)用法詳解

    一、Canny算子邊緣檢測(cè)原理及步驟 cv2.Canny() 函數(shù)是 OpenCV 中的邊緣檢測(cè)函數(shù)之一,用于檢測(cè)圖像的邊緣。它的基本原理是通過計(jì)算圖像中每個(gè)像素點(diǎn)的梯度值來檢測(cè)邊緣。具體來說,它的實(shí)現(xiàn)步驟如下: 1、對(duì)輸入圖像進(jìn)行高斯濾波,以平滑圖像并去除噪聲; 2、計(jì)算圖像的梯

    2024年02月09日
    瀏覽(91)
  • opencv-python庫 cv2 圖形繪制 cv2.line()cv2.rectangle()cv2.circle()cv2.ellipse()cv2.polylines()cv2.putText

    cv2.line() 是 OpenCV 中的一個(gè)函數(shù),用于在圖像上繪制直線。這個(gè)函數(shù)需要指定圖像、線的起點(diǎn)和終點(diǎn)坐標(biāo)、線的顏色、線的寬度以及線的類型。 下面是 cv2.line() 函數(shù)的詳細(xì)參數(shù)說明: 參數(shù)解釋: 下面是一個(gè)使用 cv2.line() 繪制直線的簡(jiǎn)單示例: 在這個(gè)例子中,我們創(chuàng)建了一個(gè)

    2024年04月23日
    瀏覽(100)
  • 畫圓操作——OpenCV中cv2.circle函數(shù)詳解

    畫圓操作——OpenCV中cv2.circle函數(shù)詳解 在計(jì)算機(jī)視覺領(lǐng)域,圖像處理是最基礎(chǔ)的操作,而畫圓操作又是其中不可或缺的一部分。在OpenCV中,cv2.circle函數(shù)可以實(shí)現(xiàn)畫圓的功能。 下面是cv2.circle函數(shù)的基本格式: 其中各參數(shù)含義如下: img:要進(jìn)行畫圓操作的圖片。 center:圓心坐

    2024年02月09日
    瀏覽(85)
  • 【Python/Opencv】圖像權(quán)重加法函數(shù):cv2.addWeighted()詳解

    【Python/Opencv】圖像權(quán)重加法函數(shù):cv2.addWeighted()詳解

    在OpenCV圖像加法cv2.add函數(shù)詳解詳細(xì)介紹了圖像的加法運(yùn)算。 除了這種加法外,OpenCV還提供了帶權(quán)重的加法,即兩副圖像的像素通道值相加時(shí)各自按一定的權(quán)重比例取值來相加。 假設(shè)有2個(gè)圖像矩陣src1和src2,在兩個(gè)圖像融合時(shí),各自的權(quán)重分別為alpha和beta,則二者融合后的目

    2024年02月15日
    瀏覽(164)
  • 詳解cv2.addWeighted函數(shù)【使用 OpenCV 添加(混合)兩個(gè)圖像-Python版本】

    詳解cv2.addWeighted函數(shù)【使用 OpenCV 添加(混合)兩個(gè)圖像-Python版本】

    有的時(shí)候我們需要將兩張圖片在alpha通道進(jìn)行混合,比如深度學(xué)習(xí)數(shù)據(jù)集增強(qiáng)方式MixUp。OpenCV的 addWeighted 提供了相關(guān)操作,此篇博客將詳細(xì)介紹這個(gè)函數(shù),并給出代碼示例。???? o u t p u t I m g = s a t u r a t e ( α ? i n p u t I m g 1 + β ? i n p u t I m g 2 + γ ) rm outputImg=saturate( al

    2024年02月06日
    瀏覽(92)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包