小编Ops*_*ger的帖子

如何将从 cv2.findContours 获得的 NumPy 数组转换为 Shapely 多边形?

我正在使用 CV2 从图像中查找轮廓,然后使用 Shapely 将它们转换为多边形。我目前陷入困境,因为当我尝试将其中一个轮廓数组放入Polygon()Shapely 时,它会引发未指定的错误。

我已经仔细检查过我导入了我需要的所有东西,并且当我手动输入数组坐标点时,创建一个 Shapely 多边形是有效的。

这是代码的问题部分:

contours, hierarchy = cv2.findContours(thresh, cv2.RETR_CCOMP, cv2.CHAIN_APPROX_SIMPLE)
testcontour = contours[1]

ply = Polygon(testcontour)
Run Code Online (Sandbox Code Playgroud)

轮廓列表如下所示:

contours = [np.array([[[700, 700]],
                      [[700, 899]],
                      [[899, 899]],
                      [[899, 700]]]), 
            np.array([[[774, 775]], 
                      [[775, 774]],
                      [[824, 774]],
                      [[825, 775]],
                      [[825, 824]],
                      [[824, 825]],
                      [[775, 825]],
                      [[774, 824]]]), 
            np.array([[[200, 200]],
                      [[200, 399]],
                      [[399, 399]],
                      [[399, 200]]]), 
            np.array([[[274, 275]],
                      [[275, 274]],
                      [[324, 274]],
                      [[325, 275]],
                      [[325, 324]],
                      [[324, 325]],
                      [[275, 325]],
                      [[274, 324]]])]
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

---------------------------------------------------------------------------
AssertionError                            Traceback (most …
Run Code Online (Sandbox Code Playgroud)

python opencv numpy shapely

9
推荐指数
1
解决办法
4680
查看次数

标签 统计

numpy ×1

opencv ×1

python ×1

shapely ×1