2016-12-26 162 views
2

我想用python opencv。 這個錯誤是什麼意思?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 
+0

看起來它需要一些二維元素,但它獲得一維元素。 – furas

+0

我猜你的'img_df'沒有正確加載,可能路徑不正確,所以在調用'cv2.threshold()'之前,請調用'print img_df.shape'來檢查圖像是否加載正確。 – ZdaR

回答

1

您可以在OpenCV documentation中看到,閾值函數只允許單通道圖像。

如果你的圖像是彩色的,它將不起作用。如果它是灰度的,但是你用imread加載它,OpenCV可能會將它加載爲3通道。您可以添加該標誌以將其作爲CV_8UC1的單通道加載(假設它是8位無符號的像素,這對於灰度圖像更爲常見)。 例如: img_df = cv2.imread(「image/path」,cv2.CV_8UC1)