問題描述
我們使用 python 撰寫 OpenCV 程式的時候
執行完 cv2.imshow 將圖片顯示出來後,
使用內建的關閉視窗方法,卻導致「視窗沒有回應」、「視窗當掉」的問題。
解法
OpenCV 在設計的時候,有 OpenCV 內建的關閉圖片的方式,
雖然 windows、mac或linux都會有關閉視窗的「X」按鍵,
但其實系統內建的關閉視窗方式並不一定會執行到 OpenCV一些清理一些系統參數的內容。
所以這才導致有時候會一些 bug,例如都按下關閉視窗的「X」按鍵,
圖片卻有無法順利關閉的現象、甚至造成「視窗沒有回應」、「視窗當掉」。
這裡建議使用 OpenCV 內建的方式來處理圖片關閉的問題,免得會有其他的錯誤。
cv2.waitKey(0) # 暫停等待按鍵,使 cv2.imshow 能顯示出畫面
cv2.destroyAllWindows() # 配合上一行,按下任意鍵則關閉所有視窗 (使用 OpenCV 內建的方法)
但這樣按任意按鍵視窗都會關閉,有辦法讓視窗在只有在按右上角的X時關閉,按其他鍵不會關閉嗎?