成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

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

Jensen / 4042人閱讀

Contours : More Functions

1 凸缺陷

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

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

它返回一個(gè)數(shù)組,其中每一行包含這些值 - [起點(diǎn),終點(diǎn),最遠(yuǎn)點(diǎn),到最遠(yuǎn)點(diǎn)的近似距離]
NOTE:
必須在找到凸包時(shí)傳遞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

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

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

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

NOTE
果您不想找到距離,請(qǐng)確保第三個(gè)參數(shù)為False,因?yàn)檫@是一個(gè)耗時(shí)的過(guò)程. 因此,將其設(shè)為False可提供2-3倍的加速.

3 形狀匹配

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

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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/42026.html

相關(guān)文章

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

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

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

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

    tracymac7 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<