如何缩小OpenCV中cv2.imshow()打开的窗口尺寸?
OpenCV控制窗口大小的解决方案
当然有,OpenCV提供两种常用方式来控制显示窗口的尺寸,适配你的需求:
方式一:直接设置窗口固定大小
先通过cv2.namedWindow()将窗口设置为可调整尺寸模式,再用cv2.resizeWindow()指定具体宽高,之后再调用cv2.imshow()显示图像。
修改你的代码,在调用cv2.imshow()前添加窗口配置逻辑:
def detection1(y2,y1,x2,x1,name): roi=img[y2:y1,x2:x1] # ... 原检测逻辑保持不变 ... # 添加窗口大小控制 cv2.namedWindow(name, cv2.WINDOW_NORMAL) # 设置窗口支持调整尺寸 cv2.resizeWindow(name, 640, 480) # 指定窗口宽640、高480,可按需修改数值 cv2.imshow(name,roi)
方式二:先缩放ROI图像再显示
如果希望显示的图像本身按比例缩小,而非仅调整窗口框架,可以用cv2.resize()先缩放ROI,再显示:
def detection1(y2,y1,x2,x1,name): roi=img[y2:y1,x2:x1] # ... 原检测逻辑保持不变 ... # 缩放ROI到目标尺寸,示例为宽640、高480 scaled_roi = cv2.resize(roi, (640, 480)) cv2.imshow(name, scaled_roi)
这种方式下,窗口会自动适配缩放后的图像尺寸,同样能解决窗口过大的问题。
补充说明
cv2.WINDOW_NORMAL是核心参数:默认窗口为cv2.WINDOW_AUTOSIZE,会自动适配图像大小且无法手动调整;设置为WINDOW_NORMAL后,不仅能用代码指定大小,还能手动拖动窗口边缘调整尺寸。- 两种方式可结合使用,比如先缩放图像,再设置窗口固定大小,灵活度更高。
内容的提问来源于stack exchange,提问作者Moon
相关产品推荐
相关产品推荐

