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

##############

posted @   西北逍遥  阅读(389)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2022-06-02 训练日志
2021-06-02 聚类实验结果
2020-06-02 IfcFurnishingElementType
2019-06-02 test
点击右上角即可分享
微信分享提示