Opencv Python程序
我现在正在用python尝试opencv。 这个错误是什么意思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&
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
检查图像是否正确加载。