【问题标题】:how to make two different image size equally如何使两个不同的图像大小相等
【发布时间】:2020-08-15 06:19:09
【问题描述】:

OpenCV 中的大部分函数都要求 src1 和 src2 的大小必须相等。 有谁知道我是否有两个不同尺寸的图像文件,如何使大小相等?

【问题讨论】:

    标签: image-resizing


    【解决方案1】:
    from PIL import Image
    
    img = Image.open('frog.jpg')
    
    img2 = Image.open('cat.jpg')
    
    Nimg = img.resize((220,180))   # image resizing
    
    Nimg2 = img2.resize((220,180))
    

    【讨论】:

      【解决方案2】:

      您可以缩放它们以匹配,通常通过缩小较大的图像。问题是它们必须具有相同的纵横比,如果不这样做,您将不得不裁剪图像而不裁剪掉重要部分。

      在opencv中缩放图像:

      【讨论】:

        【解决方案3】:

        当然您可以裁剪:https://stackoverflow.com/a/8268062/3076403 或调整图像大小:How to resize an image to a specific size in OpenCV?

        但是你真的需要这样做吗?请具体说明,你想达到什么目的?

        大多数 OpenCV 函数处理一个图像到另一个图像,执行空间像素到像素的操作(例如过滤、形态学操作)。这样它就可以生成与原始大小相同的输出图像,这是一种理想的行为。

        【讨论】:

          【解决方案4】:

          2020 年更新: 这个库处理得非常好,包括在需要时进行扩展和裁剪: https://pypi.org/project/image-tools/

          from PIL import Image
          from image_tools.sizes import resize_and_crop
          
          img_target_size = Image.open('img1.png')
          img_to_resize = resize_and_crop(
              'img2.png', 
              (img_origin_size.size[0],img_origin_size.size[1]), #set width and height to match img1
              crop_origin="middle"
              )
          output = img_to_resize.save('resized_img2.png')
          

          【讨论】:

            猜你喜欢
            • 2018-01-05
            • 2023-03-08
            • 1970-01-01
            • 2017-11-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-03-01
            相关资源
            最近更新 更多