使用OpenCV检测角后绘制非相交的多边形

问题描述 投票:0回答:1

我有这张图片:

enter image description here

而且我正在使用cv2.goodFeaturesToTrack来检测死因裁判官,所以现在我有了这个:

enter image description here

[角为红色,数字显示goodFeaturesToTrack获得角的顺序。例如,编号为0的角是第一个检测到的角,等等...

如果我根据该顺序连接点,我会得到一个凌乱的多边形,因此我想到使用给定随机点集的函数,它将以多边形不会相交的顺序返回它们。 。

我找到了this function,它确实满足我的要求。

但是,尽管多边形不相交,但在此示例中,我没有得到与初始形状相同的形状(我得到了一个非自相交的多边形,但形状不同)。

有人有解决此问题的想法吗?我当时想让cv2.goodFeaturesToTrack返回一组有序的点,但是我不知道该怎么做。

非常感谢!

opencv computer-vision cv2 opencv-python corner-detection
1个回答
0
投票

[如果要获取多边形,则可以对图像进行阈值处理并使用findContours提取外部轮廓,使用CV_RETR_EXTERNAL作为获取外部轮廓的方式,并使用CV_CHAIN_APPROX_SIMPLE作为方法。 CV_CHAIN_APPROX_SIMPLE压缩水平,垂直和对角线段,仅保留其端点(请参见documentation)。

© www.soinside.com 2019 - 2024. All rights reserved.