如何使用scipy.misc.imresize在Python中调整图像大小,使其与另一个指定图像的大小相匹配

时间:2017-02-19 22:08:41

标签: python python-2.7 numpy scipy image-resizing

对于我的代码,有两个图像称为“org_content”和“output”:

elif cp_mode == 'lum2':
            output = args.output_lum2
            org_content = args.org_content
            org_content = imread(org_content).astype(float)/256
            output = imread(output).astype(float)/256

            org_content = rgb2luv(org_content)
            org_content[:,:,0] = output.mean(2)
            output = luv2rgb(org_content)
            output[output<0] = 0
            output[output>1]=1
            imsave(output_a_name, output)

如果两张图片之间存在尺寸差异,则会收到错误消息:

Traceback (most recent call last):
  File "lum_transfer.py", line 123, in <module>
    org_content[:,:,0] = output.mean(2)
ValueError: could not broadcast input array from shape (666,1000) into shape (1024,1536)

我需要调整“org_content”的大小,使其与“output”的长度和宽度相匹配。这是因为保留“输出”的大小/质量比保留“org_content”的大小/质量更重要。

rgb2luv和luv2rgb函数对于大小差异问题并不重要。

我尝试使用它来解决问题,但仍然会出现相同的错误消息:

org_content = scipy.misc.imresize(output, org_content.shape)

我也尝试过:

org_content = img_as_float(scipy.misc.imresize(output, org_content.shape))

那么我在这里做错了什么,我该如何解决这个问题呢?

我的脚本中有以下库:

import numpy as np
import argparse
from skimage import io,transform,img_as_float
from skimage.io import imread,imsave
from numpy import eye 

我的完整脚本可以在这里找到:https://gist.github.com/ProGamerGov/2e7a0fe7a5ef6e117dc0be81df243331

1 个答案:

答案 0 :(得分:1)

为了解决这个问题,我使用了:

org_content = skimage.transform.resize(org_content, output.shape)

这要求我添加:

import skimage

也是我的剧本。