opencv判断点在轮廓内还是轮廓外
import cv2 mask = cv2.imread(r"2.png", 0) mask[mask > 100] = 255 mask[mask != 255] = 0 cnts, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) print("mask info:", mask.shape, len(cnts)) pt0 = (131, 104) # 外点, 红色 pt1 = (166, 157) # 轮廓上的点 pt2 = (260, 170) # 内点 img = cv2.cvtColor(mask, cv2.COLOR_GRAY2BGR) img = cv2.circle(img, pt0, 2, (0, 0, 255), 2) # 红色 img = cv2.circle(img, pt1, 2, (0, 255, 0), 2) # 绿色 img = cv2.circle(img, pt2, 2, (255, 0, 0), 2) # 蓝色 dst0 = cv2.pointPolygonTest(cnts[0], pt0, 1) dst1 = cv2.pointPolygonTest(cnts[0], pt1, 1) dst2 = cv2.pointPolygonTest(cnts[0], pt2, 1) print("dst:", dst0, dst1, dst2) cv2.imshow("win1",img) #cv2.imwrite(r"ret.jpg", img) cv2.waitKey(0)
参考:https://blog.csdn.net/weixin_34910922/article/details/125610396
##############
QQ 3087438119