以下是部分代码截图和报错截图报错原因pt错误(我反复检查了,感觉输入类型没有错误)
2条回答 默认 最新
关注 【相关推荐】
- 这篇博客也许可以解决你的问题👉 :OpenCV – cv2.pointPolygonTest 判断点是否在多边形内
- 除此之外, 这篇博客: opencv 判断点在多边形内外中的 1、cv2.pointPolygonTest() 函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
函数定义:cv2.pointPolygonTest(contour, pt, measureDist)
函数功能:找到图像里的点和轮廓之间的最短距离. 它返回的距离当点在轮廓外的时候是负值,当点在轮廓内是正值,如果在轮廓上是0。
其中,contour 为轮廓多边形;pt 为坐标点;measureDist, 若为True,是找带符号的距离;若为False,会找点是否在内,外,或轮廓上(相应返回+1, -1, 0)。
测试用例:
import cv2 mask = cv2.imread(r"mask.jpg", 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.imwrite(r"ret.jpg", img)
测试结果:
dst: -58.52 2.82 44.28
图像:
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报
悬赏问题
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音
- ¥30 Pytorch深度学习服务器跑不通问题解决?
- ¥15 部分客户订单定位有误的问题
- ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
- ¥15 Bug traq 数据包 大概什么价
- ¥15 在anaconda上pytorch和paddle paddle下载报错
- ¥25 自动填写QQ腾讯文档收集表