私はopencv 2.4.2、python 2.7を使用しています次の簡単なコードは正しい名前のウィンドウを作成しましたが、その内容は空白であり、画像は表示されません。
import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow',img)
誰かがこの問題について知っていますか?
私はopencv 2.4.2、python 2.7を使用しています次の簡単なコードは正しい名前のウィンドウを作成しましたが、その内容は空白であり、画像は表示されません。
import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow',img)
誰かがこの問題について知っていますか?
回答:
imshow()
でのみ動作しwaitKey()
ます:
import cv2
img = cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow', img)
cv2.waitKey()
(ウィンドウを更新するために必要なメッセージループ全体がそこに隠されています。)
print img
は、NoneType
オブジェクトではなく正しいnumpy配列を出力します。
私のために役立つ答えをここで見つけました:http : //txt.arboreus.com/2012/07/11/highgui-opencv-window-from-ipython.html
インタラクティブなipythonセッションを実行していて、highguiウィンドウを使用したい場合は、最初にcv2.startWindowThread()を実行してください。
詳細:HighGUIは、OpenCVコードからの画像やビデオを表示するためのシンプルなインターフェースです。それは次のように簡単でなければなりません:
import cv2
img = cv2.imread("image.jpg")
cv2.startWindowThread()
cv2.namedWindow("preview")
cv2.imshow("preview", img)
cv2.waitKey(0)
後に使用する必要がありますcv2.imshow("window",img)
。そうして初めて機能します。
import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('Window',img)
cv2.waitKey(0)
私は同じ問題に直面しました。IDLEから画像を読み取ってを使用して表示しようとしましたcv2.imshow()
が、ウィンドウを閉じよpythonw.exe
うとすると、表示ウィンドウがフリーズして表示されません。
以下の投稿は、これがなぜ起こっているのかについて考えられる説明を提供します
" 基本的に、IDLEからこれを実行しないでください。スクリプトを記述し、.pyw拡張子を使用して名前を付けてダブルクリックすることにより、Windowsの場合はシェルまたはスクリプトから直接実行します。IDLEの独自のイベントには明らかに矛盾がありますループとGUIツールキットからのもの。」
imshow()
IDLEで直接実行するのではなく、スクリプトで使用して実行すると、うまくいきました。
あなたはこのスレッドのどこかに必要なすべての部分を持っています:
if cv2.waitKey(): cv2.destroyAllWindows()
アイドルで私のためにうまく働きます。
後に追加のメソッドは必要ありませんwaitKey(0)
(上記のコードに返信)
import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow',img)
cv2.waitKey(0)
ウィンドウが表示されます->ウィンドウをクリックしてEnterキーをクリックします。ウィンドウが閉じます。
エラー:(-215)関数imshowのsize.width> 0 && size.height> 0
このエラーは、画像が見つからないために発生します。したがって、imshow関数のエラーではありません。
同じ215エラーが発生しましたが、C:\ Folder1 \ Folder2 \ filename.extのように、イメージへの完全なパスを指定することで克服できました。