Ann*_*iek 0 opencv image-manipulation numpy python-3.x
我今天开始学习 OpenCV,我写了一个简短的代码来上传(我不知道,如果它是正确的术语)随机图像:
它工作正常,我可以打开图像,但我得到的是一个大窗口,除非我滚动它,否则我看不到完整的图像:
所以,我想知道一种方法,可以在较短的窗口中很好地看到整个图像。
实际的“问题”来自imshow自身,如下:
如果该窗口不是在此函数之前创建的,则假定使用
cv::WINDOW_AUTOSIZE.
在WindowFlags文档页面查看相应的描述,我们得到:
用户无法调整窗口大小,大小受显示的图像限制。
因此,要解决此问题,您必须使用 手动设置窗口namedWindow,然后使用 相应地调整其大小resizeWindow。
让我们看看这个代码片段:
import cv2
# Read image
image = cv2.imread('path/to/your/image.png')
# Window from plain imshow() command
cv2.imshow('Window from plain imshow()', image)
# Custom window
cv2.namedWindow('custom window', cv2.WINDOW_KEEPRATIO)
cv2.imshow('custom window', image)
cv2.resizeWindow('custom window', 200, 200)
cv2.waitKey(0)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
示例输出如下所示(原始图像大小为[400, 400]):
使用cv2.WINDOW_KEEPRATIO,图像始终适合窗口,如果需要,您可以手动调整窗口大小。
希望有帮助!
| 归档时间: |
|
| 查看次数: |
3361 次 |
| 最近记录: |