按下esc後無法關閉視窗?
2019/11/28 下午 05:43
電腦視覺深度學習討論版
Eric Lin
觀看數:93
回答數:2
收藏數:1
我是 mac
python 3.7
while True:
cv2.imshow('change saturation', img_hsv_change)
k = cv2.waitKey(0)
if k == 27:
cv2.destroyAllWindows()
break
每次按下esc後會當掉 有人跟我一樣嗎?
回答列表
-
2019/11/28 下午 09:10Jeffrey贊同數:0不贊同數:0留言數:2
是的, 會有這種現象, 解決方式:
1. 在image.show 之前, 加上" cv2.startWindowThread()" , 會用一個thread去標記要關掉的windows
2. 圖像出現後必須把光標移動到窗口上再按鍵才會退出
3. destroyWindow(), 關閉image.show 的窗口
-
2019/12/03 下午 04:26Pei-Yi Lin贊同數:2不贊同數:0留言數:0
基本上我也有遇到一樣的問題
使用mac
我發現可能跟jupyter有關
因為如果直接寫成py檔用自己的環境執行(直接python3或是使用vscode之類的)是可以成功關掉的
但是如果是使用jupyter
即使加上cv2.startWindowThread()和destroyWindow()或是destroyWindow()後面加入waitkey(1)都無法(還有些解法是說要連續好多個waitkey(1))
最後我只能選擇用
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()
來顯示圖片
不然每次都會當掉
然後jupyter的kernal都要重跑
ps, 目前不知道使用plt的話會不會對之後的作業有影響, 但目前就先用這方法解決顯示圖片的問題