私はopencv2とpythonを使用しています。私はpythonとopencvで新しいです。jpegイメージを読み取って、それが示すイメージを表示しようとしました。次のエラー:
/home/pi/opencv-2.4.9/modules/highgui/src/window.cpp:269: \
error: (-215) size.width>0 && size.height>0 in function imshow.
そしてコードは:
import cv2
# windows to display image
cv2.namedWindow("Image")
# read image
image = cv2.imread('home/pi/bibek/book/test_set/bbb.jpeg')
# show image
cv2.imshow("Image", image)
# exit at closing of window
cv2.waitKey(0)
cv2.destroyAllWindows()
画像の読み込みに失敗します(おそらく、パスの先頭の/
を忘れたためです)。 imread
はNoneを返します。 None
をimshow
に渡すと、サイズ0x0のウィンドウを作成しようとして失敗します。
cv
の不十分なエラー処理は、C++実装のラッパーレイヤーが非常に薄いためと思われます(エラー時にNULLを返すのが一般的です)。
Rpi 3でRaspbianを使用しているときに、qrcodeを読み取ろうとしたときに同じ問題が発生しました。エラーは、cv2が画像を読み取れなかったことが原因です。 png画像を使用する場合は、pypngモジュールをインストールしてください。
Sudo pip install pypng
それは問題を引き起こしているパスです、私は同じ問題を抱えていましたが、画像の完全なパスを与えたとき、それは完全に機能していました。
私の場合、ターミナルの作業ディレクトリをcode + testImageの作業ディレクトリに変更するのを忘れていました。したがって、そこに画像を見つけることができませんでした。
最後に、これは私のために働いたものです:
画像とデスクトップにPythonファイルを保存しました。cmdディレクトリをそれに変更しました。
cd Desktop
そして、私のファイルをチェックしました:
ls
そしてこれは私のコードでした:
import cv2
import numpy as np
im = cv2.imread('unnamed.jpg')
#Display the image
cv2.imshow('im',im)
cv2.waitKey(2000) #Milliseconds
このエラーの原因の1つは、指定されたパスにファイルがない場合です。したがって、次のようなパスを確認することをお勧めします(Linuxベースのマシンを使用している場合)。
ls <path-provided-in-imread-function>
パスが正しくない場合、またはファイルが欠落している場合は、エラーが発生します。