【问题标题】:Error when using cv2.findContours使用 cv2.findContours 时出错
【发布时间】:2015-12-31 14:17:02
【问题描述】:

我试图找到图像的轮廓,但它给出了错误。

我的代码是:

import cv2
import numpy as np

img = cv2.imread('star.jpg',0)

ret,thresh = cv2.threshold(img,127,255,0)

contours,hierarchy = cv2.findContours(thresh, 1, 2)

错误是:

Traceback (most recent call last): File "C:\Python27\OpenCVContore.py", line 5, in <module> contours,hierarchy,thresh = cv2.findContours(thresh, 1, 2) error: ........\opencv\modules\core\src\matrix.cpp:236: error: (-215) step[dims-1] == (size_t)CV_ELEM_SIZE(flags) in function cv::Mat::create

我正在使用Python 2.7OpenCV 2.4.7,2.4.11

感谢任何帮助。

【问题讨论】:

  • 我使用的是 OpenCV 3.0,但是当我使用有效文件测试您的代码时,它可以工作。当我将文件名更改为不存在的文件时,我收到了与您的错误非常相似的错误。确保图像文件与脚本位于同一目录中,并且文件名完全匹配。
  • 图片读取没问题。可能在 "contours,hierarchy = cv2.findContours(thresh, 1, 2)" 这一行有问题。为什么这在 python 2.4.9 的 opencv 2.4.7、2.4.11 和 2.4.12 中不起作用
  • 把文件名改成一个不存在的文件,看看你得到了什么错误。我敢打赌imread不会。
  • 是的imread 不会抛出任何错误异常,您稍后会收到各种有趣的错误消息。因此,我正在使用我自己的 Python 包装器。
  • 我在 python 3.4 和 opencv 3 中尝试过这段代码。工作正常 | python 2.x 版本中这个错误有什么问题。请显示一些适用于 python 2.x 和 opencv 2.4.x 的有效代码

标签: python opencv contour


【解决方案1】:

通过将我的 python 版本更新到 3.4 和 opencv 版本 3 解决了这个问题。但是找不到真正的解决方案。为什么 python 2.x 版本不完全支持 openCV

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    • 2018-10-15
    • 1970-01-01
    • 2014-04-04
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多