【问题标题】:Weird error thrown by cv2.fitLine() methodcv2.fitLine() 方法抛出的奇怪错误
【发布时间】:2017-05-08 07:24:46
【问题描述】:

我正在使用 cv2.fitLine 方法在许多点之间找到一条线段。

我有以下错误:

错误:/Users/jenkins/miniconda/1/x64/conda-bld/work/opencv-3.1.0/modules/imgproc/src/linefit.cpp:603:错误:(-215) npoints2 >= 0 ||函数 fitLine 中的 npoints3 >= 0

这是我的代码中产生问题的部分:

left_points = [...]
[vxl, vyl, xl, yl] = cv2.fitLine(np.array(left_points, dtype=np.int32), cv2.DIST_L2, 0, 0.01, 0.01)

left_points 数组是一个二维坐标数组,如下所示:

[(365, 635), (377, 623), (459, 571), (471, 560), (394, 627), (400, 621), (469, 563), (475, 557 )]

对了,我找到了产生错误的opencv的原始代码文件:https://github.com/opencv/opencv/blob/master/modules/imgproc/src/linefit.cpp

但它仍然没有解释我应该做什么。请帮助我了解此错误的含义以及如何解决?

【问题讨论】:

  • 用 left_points= 你发布的数组,我没有出错(虽然没有检查它是否给出了一个好的结果,但是运行没有错误)。 left_points 是否正是您发布的数组?
  • @Soltius 不,不完全是这样,但 应该 具有这种格式。后来我检查了在那个特定的图像帧中,这个数组原来是空的。我认为这是导致问题的原因 - 但我现在已经解决了,谢谢!

标签: python python-3.x opencv numpy computer-vision


【解决方案1】:

打印点数组并确保它是 Nx2。您在消息中发布的是元组列表,而不是 numpy 数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多