• Python中使用cv2.resize()函数批量自定义缩放图像尺寸


    常用插值缩放方法

    cv2.resize()函数中的interpolation参数指定了图像缩放时使用的插值方法。以下是常用的插值方法:

    cv2.INTER_NEAREST最近邻插值。该方法通过选择最接近目标像素的原始像素来进行插值。它是最快速的插值方法,但可能会导致锯齿状边缘效果。

    cv2.INTER_LINEAR:双线性插值。该方法通过使用原始像素的线性组合来计算目标像素的值。它比最近邻插值提供了更平滑的结果,但在缩小图像时可能会丢失细节。

    cv2.INTER_CUBIC:双三次插值。该方法在双线性插值的基础上使用了更多的邻近像素,以获得更高质量的缩放结果。它比双线性插值计算量更大,但效果更好。

    cv2.INTER_LANCZOS4:Lanczos插值。该方法使用Lanczos算法来计算目标像素的值。它在缩放图像时提供了更好的保真度,但计算量较大。

    cv2.INTER_AREA:适用于缩小图像,不会失真,详细细节推荐参考博文:OpenCV里的INTER_AREA究竟是在做啥?

    缩放示例

    在这里插入图片描述

    代码

    
    import os
    import cv2
    
    # 获取文件路径
    folder_path = "E:/SR_Images/DIV2K_theml/DIV2K_train_HR"
    output_path = "E:/SR_Images/DIV2K_theml/DIV2K_train_LR_bicubic/X2"
    
    # 获取文件夹中所有的文件
    file_list = os.listdir(folder_path)
    
    # 遍历文件列表
    for file_name in file_list:
        # 拼接文件路径
        file_path = os.path.join(folder_path,file_name)
    
        # 仅处理图像文件
        if os.path.isfile(file_path) and file_name.lower().endswith(('.png','.jpg','.jpeg','.bmp')):
            # 读取图像路径
            image = cv2.imread(file_path)
    
            # 获取图像原尺寸
            height,width = image.shape[:2]
    
            # 计算缩放后的尺寸
            new_heiht = int(height / 2)
            new_width = int(width / 2)
    
            # 缩放图像
            resized_image = cv2.resize(image,(new_width,new_heiht),interpolation=cv2.INTER_CUBIC)  # 例子中使用了双三次插值
    
            # 保存缩放后的图像
            output_file = file_name[:-4] + "x2.png"
            cv2.imwrite(os.path.join(output_path,output_file),resized_image)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    总结

    以上就是使用cv2.resize()函数批量自定义缩放图像尺寸的方法,学者根据自己的缩放需求使用对应的缩放参数,多多支持,谢谢!

  • 相关阅读:
    第33节——useRef
    【FreeRTOS】10 事件标志组
    子网掩码的作用
    TikTok Shop商品的评价有哪些规则?
    安全实战 | 怎么用零信任防范弱密码?
    操作系统——磁盘操作
    从Overleaf提交到arxiv
    gcc -static参数
    基于Qt窗口文件新建_编辑_打开_保存_另存_剪切和复制和粘贴项目(文件操作直接套源码)
    Python中map、apply、applymap的用法
  • 原文地址:https://blog.csdn.net/qq_40280673/article/details/134018946