Numpy调整图像大小/重新缩放图像

我想拍摄一张图像,改变图像的比例,而它是一个numpy数组

例如,我有一个可口可乐瓶的图像:
第一瓶

这转化为一个numpy数组的形状(5282003,3),我想调整它的大小,以表示第二幅图像的大小:
第二瓶

其形状为(140,54,3)

如何在保持原始图像的同时将图像的大小更改为特定形状?其他答案建议每隔一行或第三行剥离一次,但我想做的是基本上收缩图像,就像通过图像编辑器(但使用python代码)那样。在numpy/SciPy中是否有可以执行此操作的库

是的,您可以安装opencv(这是一个用于图像处理和计算机视觉的库),并使用cv2.resize功能。例如,使用:

导入cv2
将numpy作为np导入
img=cv2.imread(’your_image.jpg’))
res=cv2.resize(img,dsize=(54140),插值=cv2.INTER\u CUBIC)

因此,img是包含原始图像的numpy数组,而res是包含调整大小的图像的numpy数组。一个重要的方面是插值参数:有几种方法可以调整图像的大小。特别是当您缩小图像时,原始图像的大小不是调整大小后图像大小的倍数。可能的插值模式包括:

  • INTER_NEAREST-最近邻插值
  • 内部线性-双线性插值(默认使用)
  • 内部区域-使用像素区域关系重新采样。这可能是图像抽取的首选方法,因为它提供了无莫尔条纹的图像
    后果但是当图像被缩放时,它与
    INTER\u-NEAREST方法
  • INTER_CUBIC-4×4像素邻域上的双三次插值
  • INTER_LANCZOS4-8×8像素邻域上的Lanczos插值

与大多数选项一样,没有“最佳”选项,因为对于每个调整大小模式,都存在一种策略优于另一种策略的情况

发表评论