Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv Python程序_Python_Opencv - Fatal编程技术网

Opencv Python程序

Opencv Python程序,python,opencv,Python,Opencv,我现在正在用python尝试opencv。 这个错误是什么意思 OpenCV Error: Assertion failed (m.dims >= 2) in Mat, file /build/opencv-ISmtkH/opencv-2.4.9.1+dfsg/modules/core/src/matrix.cpp, line 269 Traceback (most recent call last): File "sabun5.py", line 16, in <module&

我现在正在用python尝试opencv。 这个错误是什么意思

OpenCV Error: Assertion failed (m.dims >= 2) in Mat, file /build/opencv-ISmtkH/opencv-2.4.9.1+dfsg/modules/core/src/matrix.cpp, line 269 
Traceback (most recent call last): 
File "sabun5.py", line 16, in <module> 
img_m = cv2.threshold(img_df, 50, 255, cv2.THRESH_BINARY)[1] 
cv2.error: /build/opencv-ISmtkH/opencv-2.4.9.1+dfsg/modules/core/src/matrix.cpp:269: error: (-215) m.dims >= 2 in function Mat
OpenCV错误:Mat文件/build/OpenCV-ISmtkH/OpenCV-2.4.9.1+dfsg/modules/core/src/matrix.cpp第269行中的断言失败(m.dims>=2)
回溯(最近一次呼叫最后一次):
文件“sabun5.py”,第16行,在
img_m=cv2.threshold(img_df,50255,cv2.THRESH_二进制)[1]
cv2.error:/build/opencv ISmtkH/opencv-2.4.9.1+dfsg/modules/core/src/matrix.cpp:269:error:(-215)m.dims>=2在函数表中
您可以在中看到,阈值函数只允许单通道图像

如果你的图像是彩色的,它将无法工作。如果它是灰度的,但您正在使用imread加载它,那么OpenCV可能会将其作为3通道加载。您可以添加标志,将其作为带有CV_8UC1的单通道加载(假设它是8位无符号通道,这对于灰度图像更常见)。 例如:
img_df=cv2.imread(“图像/路径”,cv2.CV_8UC1)

在对图像进行阈值化之前,必须将图像转换为灰度。图像具有两个以上的维度,即(高度、宽度、颜色通道)灰度图像只有两个维度(高度、宽度) 也许会有帮助

    import cv2
    img = cv.imread('x.png',0)
    # where 0 converts the image in grayscale or gray = cv2.cvtColor(img,    cv2.COLOR_BGR2GRAY)

    img_m = cv2.threshold(img, 50, 255, cv2.THRESH_BINARY)[1] 

    cv2.waitKey(0)

它看起来需要一些二维元素,但得到的是一维元素。我猜您的
img\u df
没有正确加载,可能路径不正确,因此在调用
cv2.threshold()
之前,请调用
print img\u df.shape
检查图像是否正确加载。