成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

opencv python 輪廓/凸缺陷/PointPolygonTest/形狀匹配

Jensen / 3937人閱讀

Contours : More Functions

1 凸缺陷

對象上的任何凹陷都被成為凸缺陷.cv.convexityDefects()

hull = cv2.convexHull(cnt,returnPoints = False)
defects = cv2.convexityDefects(cnt,hull)

它返回一個數(shù)組,其中每一行包含這些值 - [起點,終點,最遠點,到最遠點的近似距離]
NOTE:
必須在找到凸包時傳遞returnPoints = False,以便找到凸起缺陷.

代碼

import cv2
import numpy as np

img = cv2.imread("img7.png")

img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(img_gray, 127, 255,0)
im2,contours,hierarchy = cv2.findContours(thresh,2,1)
cnt = contours[0]

hull = cv2.convexHull(cnt,returnPoints = False)
defects = cv2.convexityDefects(cnt,hull)

for i in range(defects.shape[0]):
    s,e,f,d = defects[i,0]
    start = tuple(cnt[s][0])
    end = tuple(cnt[e][0])
    far = tuple(cnt[f][0])
    cv2.line(img,start,end,[0,255,0],2)
    cv2.circle(img,far,5,[0,0,255],-1)

cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

2 PointPolygonTest

此功能可查找圖像中的點與輪廓之間的最短距離. 當(dāng)點在輪廓外時返回負(fù)值,當(dāng)點在內(nèi)部時返回正值,如果點在輪廓上則返回零.
我們可以檢查點(50,50)如下:

dist = cv2.pointPolygonTest(cnt,(50,50),True)

在函數(shù)中,第三個參數(shù)是measureDist。 如果為True,則查找簽名距離. 如果為False,則查找該點是在內(nèi)部還是外部或在輪廓上(它分別返回+1,-1,0)

NOTE
果您不想找到距離,請確保第三個參數(shù)為False,因為這是一個耗時的過程. 因此,將其設(shè)為False可提供2-3倍的加速.

3 形狀匹配

OpenCV附帶了一個函數(shù)cv2.matchShapes(),它使我們能夠比較兩個形狀或兩個輪廓,并返回一個顯示相似性的度量。 結(jié)果越低,匹配就越好.它是根據(jù)hu-moment值計算的.
代碼

import cv2
import numpy as np

img = cv2.imread("img7.png",0)
img2 = cv2.imread("img9.png",0)

ret, thresh = cv2.threshold(img, 127, 255,0)
ret, thresh2 = cv2.threshold(img2, 127, 255,0)
im2,contours,hierarchy = cv2.findContours(thresh,2,1)
cnt1 = contours[0]
im2,contours,hierarchy = cv2.findContours(thresh2,2,1)
cnt2 = contours[0]

ret = cv2.matchShapes(cnt1,cnt2,1,0.0)
print( ret )

輸出:
0.09604402805803886

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/42026.html

相關(guān)文章

  • opencv python 輪廓特征/包/外接矩形/外接圓/擬合矩形/擬合直線/擬合圓

    摘要:因此,邊界矩形的面積不會最小設(shè),為矩形的左上角坐標(biāo),,為寬度和高度代碼最小外接矩形返回一個結(jié)構(gòu),其中包含以下,,,,畫上述矩形代碼最小封閉圈擬合橢圓擬合直線 Contour Features 1 圖像的矩 cv2.moments()圖像的矩可以幫助計算物體的某些特征,如對象的質(zhì)心,對象的區(qū)域等. 代碼: import cv2 import numpy as np img = cv2...

    tulayang 評論0 收藏0
  • opencv python 輪廓的層次結(jié)構(gòu)

    摘要:最后,輪廓是輪廓的子節(jié)點,它們位于最后的層次結(jié)構(gòu)級別。即對象的外部輪廓即其邊界放置在層次結(jié)構(gòu)中對象內(nèi)部的孔的輪廓如果有的話放在層次結(jié)構(gòu)中用或標(biāo)記了輪廓的順序和它們所屬的層次結(jié)構(gòu)它檢索所有輪廓并創(chuàng)建完整的族層次結(jié)構(gòu)列表。 Contours Hierarchy 1 層次結(jié)構(gòu) 通常我們使用cv.findContours()函數(shù)來檢測圖像中的對象,有時對象位于不同的位置. 但在某些情況下,某...

    tracymac7 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<