gpt4 book ai didi

python - 如何在 Python 中使用 OpenCV 检查包含另一个轮廓的轮廓?

转载 作者:太空宇宙 更新时间:2023-11-03 21:52:47 25 4
gpt4 key购买 nike

假设我有以下图像,我希望在 Python 中使用 OpenCV 和 Numpy 对其进行分析:

Checker board with dots

我将所有的白色 block 标记为等高线。我还标记了红点和绿点周围的轮廓。

如何检查哪个点在哪个白色 block 中?

这是我尝试过的:

import numpy as np
import cv2
img = cv2.imread('crapypimg.bmp')
gray = cv2.imread('crapypimg.bmp',0)
ret, thresh = cv2.threshold(gray,127,255,1)
contours,h = cv2.findContours(thresh,1,2)
for cnt in contours:
approx = cv2.approxPolyDP(cnt,0.01*cv2.arcLength(cnt,True),True)
print len(approx)
if len(approx)==4:
print "square"
cv2.drawContours(img,[cnt],0,(0,0,255),2)
elif len(approx) == 9:
print "half-circle"
cv2.drawContours(img,[cnt],0,(255,255,0),3)
elif len(approx) > 15:
print "circle"
cv2.drawContours(img,[cnt],0,(0,255,255),3)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

最佳答案

如果您确定形状没有重叠,则根据轮廓检查一个点就足够了。

为此,您可以使用 cv2.pointPolygonTest

教程可用here .

关于python - 如何在 Python 中使用 OpenCV 检查包含另一个轮廓的轮廓?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33973471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com