对于我的代码,有两个图像称为“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
答案 0 :(得分:1)
为了解决这个问题,我使用了:
org_content = skimage.transform.resize(org_content, output.shape)
这要求我添加:
import skimage
也是我的剧本。