繁体   English   中英

OpenCV图片卡住

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM