【发布时间】: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 的有效代码