【发布时间】:2019-03-07 12:00:41
【问题描述】:
系统信息(版本)
- OpenCV => python-opencv/bionic-updates,bionic-security,现在 3.2.0+dfsg-4ubuntu0.1 amd64 [已安装]
- 操作系统/平台 => Ubuntu 18.04
- 编辑: GTK 后端,我使用的是 Xubuntu。
- 编辑:我没有构建opencv,我只是通过APT安装了python-opencv包。
详细说明
当图像高于显示分辨率时,WINDOW_NORMAL 不起作用。
我有两张图片:大的是 2560x2048,小的是 750x600。我的显示器设置为 1920x1080 分辨率。
当我使用下面的代码加载小窗口时,一切都按预期工作:我可以调整窗口大小和最大化窗口,并且图像“缩放”到窗口大小。
现在我加载大的(这是完全相同的图像,只是更大)。调整大小不起作用(它只是移动窗口)。最大化将窗口和图像设置为原始分辨率,这比我的显示分辨率大得多,并且无法在我的屏幕上看到整个图像。
我注意到的一件事是,在 2.4 版中,我可以将窗口大小调整为低于图像分辨率的大小。这在 3.2 版中不再起作用,可能是问题的关键。
注意:This 似乎是一个类似的问题,但不是。我无法调整图像大小,因为我对用户单击图像时的坐标感兴趣。
重现步骤
import cv2
path="/tmp/img.jpg" # or small_img.jpg
img = cv2.imread(path, 1)
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
【问题讨论】:
-
也许在您创建的bug report 中进行编辑...我已经建议您去那里发布它:) |尝试更新版本的任何更改?此构建使用什么 HighGUI 后端(gtk 或 qt 之一......可能会转储构建信息)
-
谢谢丹!我编辑了帖子,回答了你的问题。我可以提供更多信息吗?
-
你可以试试 cv2.WINDOW_FREERATIO。
-
谢谢!为了以防万一,我们都尝试了所有方法,但没有成功。