[英]OpenCV Picture stuck
我正在尝试使用opencv制作一个小程序。 基本上,它应该向用户显示图片,然后关闭它(或者最好让它打开,但这是另一个问题,因为我现在不让代码打开时如何执行代码),然后询问用户,他刚看到。 为此,我使用imshow和waitKey。 一切正常,但是按下键后图片无法关闭。 卡住了 我认为是因为在该命令之后还要执行另一个代码?
我认为是因为在该命令之后还要执行另一个代码?
导入cv2
oriimg = cv2.imread('path')
img = cv2.resize(oriimg,(360,480))
solutionimg = "Answer"
cv2.imshow('Test', img)
cv2.waitKey(0)
input("What can you see here?")
if input==solutionimg:
cv2.destroyAllWindows()
print("Right!")
else:
cv2.destroyAllWindows()
print("Wrong")
waitKey
不会关闭窗口,而是会在指定时间内停止程序。 这也是显示图像的必要步骤。
为了您的目的,您可以使用cv2.waitKey(1)
。 这将显示图像,然后提示您输入而不必先按任何键。 图像窗口不会关闭。
如果要在提示之前关闭图像,则可以使用cv2.destroyWindow([window_name])
关闭特定的窗口。
您的情况是cv2.destroyWindow('Test')
。
文档: destroyWindow , 等待键
查看您的代码还有2个问题:
cv2.imread('path')
'path'需要替换为图片路径。 这是相对于脚本而言的,因此,如果图像位于同一文件夹中,则“ [image_name] .jpg”(或.png等)就足够了,但是完整路径始终有效。
您需要将input("What can you see here?")
结果input("What can you see here?")
在变量中。 请参见示例代码中的实现。
适用于我的示例代码:
import cv2
img = cv2.imread('image.jpg')
solutionimg = "Answer"
cv2.imshow('Test', img)
cv2.waitKey(0)
test = input("What can you see here?")
if test == solutionimg:
cv2.destroyAllWindows()
print("Right!")
else:
cv2.destroyAllWindows()
print("Wrong")
此代码读取并显示图像。 当您按下一个键时,它会提示您进行输入。 在终端中单击以输入答案。 按Enter后,图像窗口关闭,并显示对/错。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.