実現したいこと
- cv2で画像を表示したい.
cv2.setMouseCallback
を用いて直接画像に描画したい
前提
- cv2.imshowを使って画像を表示させようとしたところウィンドウが開きません.
- エラーが出るわけではなくずっと実行されているようで
^c
でも実行を止めることができず,毎回ターミナルを消して止めなければならない状況となっています.
こちらの方のコードを参考にしました
環境:
MacBook Pro(13インチ、M2、2022)
conda環境
発生している問題・
該当のソースコード
python
1import cv2 2import numpy as np 3 4 5def draw_circle(event,x,y,flags,param):6 if event == cv2.EVENT_LBUTTONDOWN:7 cv2.circle(img,(x,y),100,(0,255,0),-1)8 9print('test_1')10img = np.zeros((600,600,3), np.uint8)11print('test_2')12 13cv2.imshow('test', img)14cv2.waitKey(0)15cv2.destroyAllWindows()16print('test_3')17cv2.namedWindow('mouse_drawing', cv2.WINDOW_NORMAL)18print('test_4')19 20cv2.setMouseCallback('mouse_drawing',draw_circle)21print('test_5')22while True:23 cv2.imshow('mouse_drawing',img)24 if cv2.waitKey(20) & 0xFF == 27:25 break26cv2.destroyAllWindows()
result
1>>> 2test1 3test2
試したこと
他の方の質問を参考にして
cv2.waitKey(0) cv2.destroyAllWindows()
を挿入しましたが変わりませんでした.
補足
cv2.imwrite()
などの他のメソッドは正しく動きますが cv2.imshow()
といったウィンドウ表示のメソッドがうまく動きません.
よろしくお願いします.
0 コメント