2017-02-19 22 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 

對我的腳本也是如此。

相關問題