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

python計算機視覺opencv圖像金字塔輪廓及模板匹配

 更新時間:2021年11月12日 11:49:46   作者:Swayzzu  
這篇文章主要為大家介紹了python計算機視覺opencv圖像金字塔圖像輪廓及模板匹配的學習講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步

1.圖像金字塔

①高斯金字塔

向下采樣,數據會越來越少,減少的方式是:將偶數行和列刪除

向上采樣,數據會越來越多,將圖像在每個方向上擴大為原來的兩倍,新增的行和列用0來填充。使用先前同樣的內核與放大后的圖像卷積,獲得近似值。

上采樣之后,圖片會變大。

下采樣后,圖片會變小。

②拉普拉斯金字塔

對于原始圖像,先執(zhí)行下采樣,再執(zhí)行上采樣,并用原始圖像減去得到的采樣結果。

以上的計算方式為1層,第二層的計算,把第一層得到的結果作為原始圖像進行計算。

2.圖像輪廓

cv.findContours(img,mode,method)

最常用的mode:

RETR_TREE,檢測所有的輪廓,并重構嵌套輪廓的整個層次

最常用的method:

CHAIN_APPROX_NONE:以Freeman鏈碼的方式輸出輪廓,所有其他方法輸出多邊形(頂點的序列)

CHAIN_APPROX_SIMPLE:壓縮水平的、垂直的和斜的部分,也就是函數只保留他們的終點部分。

①尋找輪廓

函數返回的第一個參數contours就是我們所需要的輪廓信息。它是一個列表的形式。每一個元素都是數組形式。一個圖像中可能有多個輪廓,并且會有外輪廓以及內輪廓,均可通過返回的contours調用。

②輪廓特征

通過調用不同的函數可以求得輪廓的面積以及周長等。

③輪廓繪制

第一個參數就是要畫上去的圖,第二個是輪廓信息,第三個是輪廓的索引,第四個是使用的顏色通道,第五個是線條的寬度。

也可以畫出輪廓的邊界矩形或者外接圓:

3.模板匹配

模板匹配 模板在原圖像上,從原點開始滑動,計算模板與圖像被模板覆蓋的地方的差別程度,這個差別程度在opencv里有6種,然后將每次計算的結果放在一個矩陣里,作為結果輸出。假如原圖像是AB,模板是ab大小,則輸出結果是(A-a+1) * (B-b+1)

TM_SQDIFF:平方差異,越小越相關

TM_CCORR:相關性,越大越相關

TM_CCOEFF:相關系數,越大越相關

TM_SQDIFF_NORMED:歸一化平方不同,越接近0越相關

TM_CCORR_NORMED:歸一化相關性,越接近1越相關

TM_CCOEFF_NORMED:歸一化相關系數,越接近1越相關

建議:盡量使用歸一化的方法

①模板匹配

讀取圖片以及需要匹配的模板,并將其進行灰度化處理:

下面得到的h,w就是模板的長和寬

通過matchTemplate的方法進行匹配:

②匹配框線繪制

對于匹配所得的返回值,通過minMaxLoc得到最小值和最大值,以及各自對應的坐標。根據選擇的方法不同,所需要的目標值不同。比如TM_SQDIFF_NORMED:歸一化平方不同,就是越接近0越相關,即越小越好。

得到了最佳的值以及坐標,就可以畫出來矩形框。

在rectangle方法中,參數依次是:要畫框的圖片,框的左上角坐標,框的右下角坐標,框的亮度,框的線條粗細。結果如下:

③多對象匹配

模板匹配也可匹配多個對象,若圖片中有多個和模板匹配的內容,cv.matchTemplate返回的內容中會有多個分數高的結果,設定閾值后,把分數高的結果的坐標,按同樣的方式處理,把方框全部畫出來即可。

4.直方圖統(tǒng)計

①直方圖繪制

可直接通過plt.hist方法,將圖像矩陣扁平化之后,繪制不同的像素出現的頻率直方圖。

②直方圖統(tǒng)計

cv2.calcHist(images,channels,mask,histSize,ranges)

參數中:

imges:傳入的圖像

channels:顏色通道,如果是灰度圖就是[0],如果是彩色可以是[0],[1],[2]。分別對應著BGR。

mask:掩膜,如果需要對圖像進行掩膜處理可以傳入此參數。

histSize:就是bin的數目,可以直接填入[256]

ranges:像素值范圍,常為:[0,256]

注意:傳入參數時,都需要用中括號括起來。

calcHist返回值是對應顏色的統(tǒng)計值。當i是0的時候,就是B,1對應G,2對應R

③直方圖的mask操作

創(chuàng)建mask,此處使用圖片的長寬作為mask的長寬,并把需要展示的地方置為1,其他地方置為0即可。

通過bitwise_and,即“與”操作,即可實現掩膜操作。

把Mask應用到圖片中,并畫出直方圖:

④直方圖均衡化

通過cv.equalizeHist方法,可以對直方圖進行均衡化

直方圖前后對比如下:

對應的圖像發(fā)生的變化如下:

以上的方式是對全局直接進行均衡化??梢钥闯鰣D中雕像的臉變得模糊。通過自適應直方圖均衡化可解決此問題,自適應均衡化是通過將圖片分成不同的小塊,對每一小塊進行各自的均衡化。

5.傅里葉變換

低通濾波是保留低頻,圖像會變得模糊。高通濾波是保留高頻,圖像的細節(jié)會增強。

在opencv中主要是cv2.dft()和cv2.idft(),輸入圖像需要先轉換成np.float32的格式 得到的結果中,頻率為0的部分會在左上角,通常要轉換到中心位置,可以通過shift變換來實現 cv2.dft()得到的結果是雙通道的(實部、虛部),通常還需要轉換成圖像格式才能展示(0,255)

上圖是將圖片轉換到頻域之后,轉換成灰度圖并且展示的形式。

在低通濾波中,當轉換到頻域并把低頻的放到中間后,只需要設置一個掩膜,即可把圖像高頻濾除掉。然后在通過逆轉換,還原圖像即可。具體代碼如下:

在高通濾波器中,只需要把上面的代碼中的掩膜轉換一下,把0換成1,1換成0即可實現高通濾波。最終的圖片展示如下:

可以看出,圖片只保留了高頻,也就是變化劇烈的部分,也就是圖像中的邊緣。

以上就是python計算機視覺opencv圖像金字塔輪廓及模板匹配的詳細內容,更多關于python opencv圖像金字塔輪廓及模板匹配的資料請關注腳本之家其它相關文章!

相關文章

  • Python Vaex實現快速分析100G大數據量

    Python Vaex實現快速分析100G大數據量

    Vaex是一個開源的DataFrame庫,它可以對表格數據集進行可視化、探索、分析,甚至機器學習,這些數據集和你的硬盤驅動器一樣大。本文就來聊聊如何利用Vaex實現快速分析100G大數據量,需要的可以參考一下
    2023-03-03
  • python應用程序在windows下不出現cmd窗口的辦法

    python應用程序在windows下不出現cmd窗口的辦法

    這篇文章主要介紹了python應用程序在windows下不出現cmd窗口的辦法,適用于python寫的GTK程序并用py2exe編譯的情況下,需要的朋友可以參考下
    2014-05-05
  • Python實現簡易凱撒密碼的示例代碼

    Python實現簡易凱撒密碼的示例代碼

    密碼的使用最早可以追溯到古羅馬時期,《高盧戰(zhàn)記》有描述愷撒曾經使用密碼來傳遞信息,即所謂的“愷撒密碼”。本文將利用Python實現簡易的凱撒密碼,感興趣的可以了解一下
    2022-09-09
  • Python的地形三維可視化Matplotlib和gdal使用實例

    Python的地形三維可視化Matplotlib和gdal使用實例

    這篇文章主要介紹了Python的地形三維可視化Matplotlib和gdal使用實例,具有一定借鑒價值,需要的朋友可以了解下。
    2017-12-12
  • Python中CSV文件(逗號分割)實戰(zhàn)操作指南

    Python中CSV文件(逗號分割)實戰(zhàn)操作指南

    CSV文件默認以英文逗號做為列分隔符,換行符作為行分隔符,下面這篇文章主要給大家介紹了關于Python中CSV文件(逗號分割)的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • Python從list類型、range()序列簡單認識類(class)【可迭代】

    Python從list類型、range()序列簡單認識類(class)【可迭代】

    這篇文章主要介紹了Python從list類型、range()序列簡單認識類(class),結合實例形式分析了list、range及自定義類等可迭代數據類型相關使用技巧,需要的朋友可以參考下
    2019-05-05
  • python opencv鼠標畫矩形框之cv2.rectangle()函數

    python opencv鼠標畫矩形框之cv2.rectangle()函數

    鼠標操作屬于用戶接口設計,以前一直使用Qt來做,但是如果只需要簡單的鼠標,鍵盤操作,直接調用opencv庫的函數也未嘗不可,下面這篇文章主要給大家介紹了關于python opencv鼠標畫矩形框cv2.rectangle()函數的相關資料,需要的朋友可以參考下
    2021-10-10
  • Python實現的百度站長自動URL提交小工具

    Python實現的百度站長自動URL提交小工具

    這篇文章主要介紹了Python實現的百度站長自動URL提交小工具,主要難點在驗證碼識別部分,研究驗證碼識別的朋友可以參考下
    2014-06-06
  • Python IDLE入門簡介

    Python IDLE入門簡介

    這篇文章主要介紹了Python IDLE入門簡介,具有一定借鑒價值,需要的朋友可以了解下。
    2017-12-12
  • python結合shell查詢google關鍵詞排名的實現代碼

    python結合shell查詢google關鍵詞排名的實現代碼

    這篇文章主要介紹了python結合shell查詢google關鍵詞排名的實現代碼,需要的朋友可以參考下
    2016-02-02

最新評論

汉寿县| 宣威市| 丹东市| 土默特左旗| 西华县| 德惠市| 盐津县| 松江区| 栾川县| 凤山县| 宁明县| 松潘县| 健康| 威海市| 陆丰市| 绵阳市| 桂林市| 五莲县| 体育| 太仓市| 天长市| 通河县| 禹城市| 庐江县| 福建省| 沁源县| 吐鲁番市| 南宫市| 瑞丽市| 彭水| 洛隆县| 佛冈县| 襄垣县| 易门县| 汕尾市| 乌海市| 华亭县| 眉山市| 山西省| 台江县| 孝感市|