gpt4 book ai didi

python - DestroyWindow 不会在 Mac 上使用 Python 和 OpenCV 关闭窗口

转载 作者:IT老高 更新时间:2023-10-28 22:10:01 27 4
gpt4 key购买 nike

我的程序使用以下代码生成一系列窗口:<​​/p>

def display(img, name, fun):
global clicked

cv.NamedWindow(name, 1)
cv.ShowImage(name, img)
cv.SetMouseCallback(name, fun, img)

while cv.WaitKey(33) == -1:
if clicked == 1:
clicked = 0
cv.ShowImage(name, img)

cv.DestroyWindow(name)

我在 gui 窗口中按“q”来关闭它。但是,代码会继续调用 display 函数并显示第二个 gui 窗口,而不是关闭第一个。我正在使用带有 OpenCV 2.1 的 Mac,在终端中运行程序。如何关闭 gui 窗口?谢谢。

最佳答案

打开窗口后需要运行cv.startWindowThread()。我有同样的问题,现在这对我有用。

希望这对 future 的读者有所帮助。还有一个 cv2 绑定(bind)(我建议使用它而不是 cv)。

此代码适用于我:

import cv2 as cv
import time

WINDOW_NAME = "win"

image = cv.imread("ela.jpg", cv.CV_LOAD_IMAGE_COLOR)
cv.namedWindow(WINDOW_NAME, cv.CV_WINDOW_AUTOSIZE)
initialtime = time.time()

cv.startWindowThread()

while (time.time() - initialtime < 5):
print "in first while"
cv.imshow(WINDOW_NAME, image)
cv.waitKey(1000)

cv.waitKey(1)
cv.destroyAllWindows()
cv.waitKey(1)

initialtime = time.time()
while (time.time() - initialtime < 6):
print "in second while"

Linux 上的 C++ 版本也会出现同样的问题: Trying to close OpenCV window has no effect

关于python - DestroyWindow 不会在 Mac 上使用 Python 和 OpenCV 关闭窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6116564/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com