我們使用OpenCV的時候總會遇到一些小問題,我這裏總結一下並提出一些較好解決的解決方法,如果大家有更好的解決方法歡迎在評論中給出
1.imshow圖像後點擊窗口的叉號,圖像不顯示了但程序並未自動繼續運行或結束
較好解決方法:
def show(title, img, t=1000, esc=True):
"""
該方法實現的功能爲:
當esc=False的時候,窗口顯示t ms自動關閉;
而當esc=True的時候,程序會檢測窗口是否存在和是否按下ESC鍵,
若手動關閉了窗口或按下ESC鍵關閉窗口,程序將繼續運行或者結束。
"""
cv2.namedWindow(title, 0)
cv2.imshow(title, img)
if esc:
while cv2.waitKey(100) != 27:
if cv2.getWindowProperty(title, cv2.WND_PROP_VISIBLE) <= 0:
break
else:
cv2.waitKey(t)
cv2.destroyWindow(title)
2.imshow圖像的時候,因爲圖像過大而顯示不完全
較好的解決方法:
def show(title, img, t=1000, esc=True):
"""
該方法實現的功能爲,當esc屬性爲False的時候,窗口顯示tms自動關閉;
而當esc爲True的時候,我們會檢測窗口是否存在和是否按下ESC鍵,
若手動關閉了窗口或按下ESC鍵關閉窗口,程序將繼續運行。
"""
cv2.namedWindow(title, 0)
# 先創建一個顯示圖像的窗口,它的屬性設爲0,就可以手動調整圖像顯示的
# 大小了,而且圖像是完整顯示的
cv2.imshow(title, img)
if esc:
while cv2.waitKey(100) != 27:
if cv2.getWindowProperty(title, cv2.WND_PROP_VISIBLE) <= 0:
break
else:
cv2.waitKey(t)
cv2.destroyWindow(title)