判断坐标点是否在list点集构成的区域中

您可以使用OpenCV的pointPolygonTest()函数来判断一个点是否在给定的多边形内。

这个函数需要三个参数:

多边形的轮廓点集,这里可以使用Python列表表示。
待测试的点,这里是[600,600]。
一个布尔值,如果为True,则返回点到多边形边界的距离,否则仅返回点是否在多边形内的信息。

下面是一个示例代码:

import cv2
import numpy as np
# 多边形的轮廓点集
points = [[500,500],[500,250],[250,1000],[1000,1000],[1000,750]]

# 创建一个黑色图像
img = np.zeros((1024, 1024), np.uint8)

# 在图像上绘制多边形
pts = np.array(points, np.int32)
cv2.polylines(img, [pts], True, (255, 255, 255), 2)

# 待测试的点
test_point = (600, 600)

# 判断点是否在多边形内
result = cv2.pointPolygonTest(pts, test_point, False)

if result == 1:
    print("点在多边形内")
elif result == 0:
    print("点在多边形边界上")
else:
    print("点在多边形外")

在上面的代码中,我们首先创建了一个黑色的图像,并在上面绘制了多边形。然后,我们使用pointPolygonTest()函数测试点[600,600]是否在多边形内,并根据返回值输出相应的结果。

注意,在绘制多边形时,我们使用了np.array()函数将多边形的点集转换为NumPy数组,并将其传递给了cv2.polylines()函数。这是因为OpenCV中的许多函数只接受NumPy数组作为输入。


所有内容除了import numpy as np之外,完全由chatgpt提供。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值