2016-12-26 5 views
2

私は今pythonでopencvを試しています。 このエラーはどういう意味ですか?OpenCv Pythonプログラム

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

それはいくつかの2次元要素を必要とするが、それは1次元要素を取得するように見えます。 – furas

+0

あなたの 'img_df'が正しくロードされていないと思われます。パスが正しくない可能性があります。 'cv2.threshold()'を呼び出す前に 'print img_df.shape'を呼び出して画像が正しく読み込まれているかどうかを確認してください。 – ZdaR

答えて

1

あなたはしきい値関数がちょうどシングルチャンネル画像を許可していること、OpenCV documentationで見ることができます。

画像がカラーの場合は動作しません。それがグレースケールだが、それをimreadでロードしているのであれば、OpenCVがそれを3チャンネルのものとしてロードする可能性があります。このフラグを追加して、CV_8UC1(8ビットの符号なしビットで、グレースケールイメージではより一般的です)を使用して単一チャネルとしてロードすることができます。例えば : img_df = cv2.imread(「画像/パス」、cv2.CV_8UC1)