cvで新規windowが開かない

実現したいこと

  • 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 コメント