【CV2】Python中cv2使用小窗口显示高分辨率图片

本文介绍了如何在Python中使用OpenCV库的cv2模块,通过resizeWindow函数将高分辨率图片缩小N倍并在窗口中显示。同时,讲解了如何利用namedWindow函数的参数控制窗口行为,并提供了一个自定义缩放显示函数的实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用resizeWindos缩小N倍显示图片

# coding=utf-8
import cv2

filename = "1.bmp"
image = cv2.imread(filename)

n = 3
h, w, c = image.shape
resize_width = int(w / n)
resize_height = int(h / n)

windowname = "Image"    # 使用中文会乱码
cv2.namedWindow(windowname, cv2.WINDOW_NORMAL)
cv2.resizeWindow(windowname, resize_width, resize_height)
cv2.imshow(windowname, image)
cv2.waitKey(0)

使用namedWindow函数中的参数

# coding=utf-8
import cv2

filename = "1.bmp"
image = cv2.imread(filename)

windowname = "Image"    # 使用中文会乱码
cv2.namedWindow(windowname, cv2.WINDOW_NORMAL) # 允许窗口拖拽、放大缩小,并会记录上次的大小和位置
cv2.imshow(windowname, image)
cv2.waitKey(0)

namedWindow中的参数:

  • WINDOW_NORMAL:允许窗口拖拽、放大缩小,并会记录上次的大小和位置
  • WINDOW_AUTOSIZE:自动最大化显示图片
  • WINDOW_KEEPRATIO:保持图片比例
  • WINDOW_FREERATIO:不考虑图片比例,而窗口保持图像比率
  • 默认情况下,使用的参数是WINDOW_AUTOSIZE |或WINDOW_KEEPRATIO ,不能缩放显示
  • WINDOW_GUI_NORMAL和WINDOW_GUI_EXPANDED以前版本中绘制窗口旧方法,不建议使用

总得说来,暂时没发现第二种方法有什么用,建议在多张图片显示的时候使用cv2.resizeWindow

编写缩小显示的函数

如果有很多图片需要显示,则可以将第一种缩小显示的方法编写成函数:

def cv2_show_image(windowname, image, n):
    """
    author: xt
    :param windowname:  窗口名
    :param image:       传入的图片
    :param n:           图片缩小倍数
    :return:
    """
    
    h, w, c = image.shape
    resize_width = int(w / n)
    resize_height = int(h / n)
    
    cv2.namedWindow(windowname, cv2.WINDOW_NORMAL)
    cv2.resizeWindow(windowname, resize_width, resize_height)
    cv2.imshow(windowname, image)

接着就只需要调用函数,就可以实现自动缩放显示了:

filename = "1.bmp"
image = cv2.imread(filename)
cv2_show_image('Image', image, 3)
cv2.waitKey(0)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值