Dho*_*rka 21 python opencv ubuntu-12.04
我在ubuntu 12.04上使用opencv 2.4.7.我正在用python编程,当我运行这个脚本时我遇到了问题:
import cv2
img = cv2.imread('347620923614738322_233985812.jpg')
cv2.namedWindow("window")
cv2.imshow("window", img)
cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)
问题是当我关闭图像时脚本不会停止.我搜索了有关的信息waitKey,我发现使用cv2.waitKey(0)是正确的.
我不明白,问题出在哪里?
Ten*_*ong 13
在销毁窗口后添加cv2.waitKey(1)应该适用于这种情况.
cv2.imshow('imgae',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.waitKey(1)
Run Code Online (Sandbox Code Playgroud)
小智 8
这段代码适用于IDLE:
# -*- coding: utf-8 -*-
# Objectif : découvrir le fonctionnement d'opencv-python
# http://opencv-python-tutroals.readthedocs.org/en/latest/index.html
import numpy as np
import cv2
# Load an color image in grayscale
img = cv2.imread('Lena.tiff',0)
WINDOW_NAME = 'Image de Lena'
cv2.namedWindow(WINDOW_NAME, cv2.CV_WINDOW_AUTOSIZE)
cv2.startWindowThread()
# Display an image
cv2.imshow(WINDOW_NAME,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
希望这有助于未来的读者.
这是在所有平台上实现最佳性能的简约代码:
import cv2
img = cv2.imread("image.jpg")
cv2.imshow("Window", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
现在一些观察:
当用户想要通过按键关闭窗口 时,他/她必须确保在窗口处于焦点状态时按下该键。因为如上所述,如果终端处于焦点状态,则不会发生任何事情,并且代码执行会一直停留在窗口处于焦点状态时正确按下按键为止。0 0cv2.waitKey(0)0
0在窗口处于焦点状态时按下该键是关闭窗口的正确方法,并确保一旦窗口被销毁cv2.destroyAllWindows()并且程序结束,用户可以重新获得终端的控制权。
如果通过鼠标点击退出窗口,窗口会被销毁,但是用户很可能会陷入无法拿回终端控制权的情况。在这种情况下,用户可能想要关闭无响应的终端并打开一个新终端。