opencv学习——cv2.imshow()显示图片

两种方法,对显示的图片窗口关闭或最大化。

import cv2

img = cv2.imread('images/1.jpg')

## way1: can change the shape of the window and close the window 

#cv2.namedWindow('result',0)
#cv2.startWindowThread()
#cv2.imshow('result',img)
#cv2.waitKey(0)
#cv2.destroyAllWindows()

## way2: can close the window 
##       can not change the shape of the window

cv2.imshow('result.jpg',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.waitKey(1)
cv2.waitKey(1)
cv2.waitKey(1)
cv2.waitKey(1)
### 自动调整窗口大小以适应图像尺寸 在使用 `cv2.imshow` 显示图像时,默认情况下窗口会按照原始分辨率显示图像。然而,可以通过调用 `cv2.namedWindow()` 并设置参数 `cv2.WINDOW_AUTOSIZE` 或者手动计算比例来实现自定义窗口大小。 以下是两种常见的解决方案: #### 方法一:使用 `cv2.namedWindow` 和 `cv2.resizeWindow` 可以先创建一个具有可调节属性的窗口,再通过 `cv2.resizeWindow` 手动指定窗口大小。这种方法允许开发者完全控制窗口的比例和位置[^2]。 ```python import cv2 # 加载图像 image = cv2.imread('example_image.jpg') if image is not None: # 创建一个名为 'Resized Window' 的窗口,并启用自动调整模式 cv2.namedWindow('Resized Window', cv2.WINDOW_NORMAL) # 设置窗口大小为特定宽度和高度(可以根据需求动态修改) desired_width = 800 aspect_ratio = image.shape[1] / image.shape[0] desired_height = int(desired_width / aspect_ratio) cv2.resizeWindow('Resized Window', desired_width, desired_height) # 显示图像 cv2.imshow('Resized Window', image) cv2.waitKey(0) # 等待按键事件 else: print("Error: 图片无法加载") cv2.destroyAllWindows() ``` 此代码片段中,`cv2.namedWindow` 使用了 `cv2.WINDOW_NORMAL` 参数,这使得窗口支持自由缩放。随后,利用 `cv2.resizeWindow` 将窗口调整到期望的宽高比[^4]。 --- #### 方法二:直接应用 `cv2.WINDOW_AUTOSIZE` 另一种更简单的做法是依赖于 OpenCV 提供的内置选项——即 `cv2.WINDOW_AUTOSIZE`。当设置了该标志位后,窗口会在每次更新内容时重新评估最佳尺寸[^3]。 ```python import cv2 # 加载图像 image = cv2.imread('example_image.jpg') if image is not None: # 创建一个名为 'Auto Resizing Window' 的窗口,并启用自动调整模式 cv2.namedWindow('Auto Resizing Window', cv2.WINDOW_AUTOSIZE) # 显示图像 cv2.imshow('Auto Resizing Window', image) cv2.waitKey(0) # 等待按键事件 else: print("Error: 图片无法加载") cv2.destroyAllWindows() ``` 需要注意的是,尽管这种方式更加简便,但它并不提供额外灵活性去微调具体数值;因此对于某些特殊场景可能不够理想。 --- 以上就是关于如何让 Python 中 CV2.IMSHOW 函数能够依据实际需要而改变其展示区域大小的一些技巧介绍[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值