2017-02-19 77 views
0

的大小对于我的代码相匹配的Python调整图像大小,也有被称为“org_content”和“输出”两个图像:如何使用scipy.misc.imresize让在这里的另一个指定的图像

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”,使得其“输出”的长度和宽度相匹配。这是因为保留“输出”的大小/质量比保留“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

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

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

哪需要我添加:

import skimage 

对我的脚本也是如此。

相关问题