繁体   English   中英

使用 imshow + waitKey 显示图像 opencv+python 时出现问题

[英]Problem displaying image opencv+python using imshow + waitKey

我最近将项目的 python/opencv 升级到 python 3.7 + opencv 4.3.0,现在我遇到了 opencvs imshow 的问题。 我正在运行 Ubuntu 18.04 并且正在使用 conda venvs。

我尝试多次重新运行这段代码,一半时间正确显示白色图像,一半时间显示下面的图像( 1 )。 打印的 output ( 2 ) 始终相同。 我尝试将其从 waitKey(0) 更改为 waitKey(1000) 但这并没有什么不同。 仍然有大约一半的时间,我只看到一个微小的黑色图像。

有人知道如何调试吗? 我尝试查看 Pycharms 日志文件,但它们没有更多详细信息。 我也尝试直接从命令行运行它,但这给出了同样的问题。 还尝试删除环境并创建一个新环境,重新安装 opencv 并遇到相同的问题。 当我创建 3.6 环境时,我没有问题,但这不再是一种选择。 对于不支持 3.6 中某些功能的其他一些包,我需要 python3.7。

我收到一条警告说 libcanberra gtk 丢失,并在另一篇文章中发现它可能会导致问题。 所以我使用sudo apt install libcanberra-gtk-module libcanberra-gtk3-module安装了它,警告就消失了。 可惜这个问题没有...

import numpy as np
import cv2
if __name__ == '__main__':
     img = np.ones((255, 255, 3), dtype=np.uint8)*255
     print(img.shape)
     print(img.dtype)
     print(img.min())
     print(img.max())
     cv2.imshow("i", img)
     cv2.waitKey(0)

代码+结果截图

控制台 output

我认为没有问题。 图像的左上部分是白色的,因为它应该是。 rest 未定义。 我建议将绿色和蓝色通道设为 0,仅将红色通道设为 255,以确保确实如此。

opencv 4.3.0.36 我也有这个问题。 它在重新启动我的代码 3-5 次后工作。 Opencv 和 opencv-conrib 4.3.0.36。 在 4.2 版中运行良好,但我需要 opencv 4.3.0.36。 是不是有点bug??????

代码

我以这种方式解决了它:

如果 cv2.waitKey(0): 通过

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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