我有2个形状(图片1),需要找到一个convexHull的两个组合(图片2)。更确切地说,我有兴趣获得外角(紫色圆圈图片2)。形状是分离的。我跟踪的形状是一个透明塑料的正方形,侧面有两个彩色条纹。条纹很容易跟踪(inRange)。
我想的一个快速而肮脏的方法是用一条白色线连接条纹的中心,然后获得convexHull。我也在考虑连接两个形状的顶点列表,并获得组合的convexHull,但我不确定这种方法是否会崩溃convexHull函数。
有没有更好的方法来解决这个问题?
请帮
图1
的数据
Pic 2
的
3条答案
按热度按时间ztyzrc3y1#
问题已解决
工作起来很有魅力。连接不同形状的点不会撞上凸壳。
我在GitHub https://github.com/wojciechkrukar/OpenCV/blob/master/RectangleDetector/RectangleDetector.ipynb上发布了代码
这就是结果:
的数据
下面是最重要的一段代码:
字符串
o3imoua42#
这个答案指的是以前的一个答案中的一个小错误。我没有足够的声望在那里添加评论。在所选的答案中,在行中
第一个月
有一种类型。它应该是:
cont = np.vstack([contours[i] for i in range(length)])
的否则,您将得到以下错误:
TypeError: arrays to stack must be passed as a "sequence" type such as list or tuple.
。zsohkypk3#
的数据
字符串