Python Numpy错误-仅在Linux上
下面的Python代码将获取两个图像并执行它们的“alpha合成”,或者换句话说,将一个图像粘贴在另一个图像上,然后返回一个图像。这段代码并不是我真正理解的东西,因为它来自另一个堆栈溢出的答案Python Numpy错误-仅在Linux上,python,linux,numpy,python-imaging-library,Python,Linux,Numpy,Python Imaging Library,下面的Python代码将获取两个图像并执行它们的“alpha合成”,或者换句话说,将一个图像粘贴在另一个图像上,然后返回一个图像。这段代码并不是我真正理解的东西,因为它来自另一个堆栈溢出的答案 import numpy as np import Image def alpha_composite(src, dst): src = np.asarray(src) dst = np.asarray(dst) out = np.empty(src.shape, dtype =
import numpy as np
import Image
def alpha_composite(src, dst):
src = np.asarray(src)
dst = np.asarray(dst)
out = np.empty(src.shape, dtype = 'float')
alpha = np.index_exp[:, :, 3:]
rgb = np.index_exp[:, :, :3]
src_a = src[alpha]/255.0
dst_a = dst[alpha]/255.0
out[alpha] = src_a+dst_a*(1-src_a)
old_setting = np.seterr(invalid = 'ignore')
out[rgb] = (src[rgb]*src_a + dst[rgb]*dst_a*(1-src_a))/out[alpha]
np.seterr(**old_setting)
out[alpha] *= 255
np.clip(out,0,255)
# astype('uint8') maps np.nan (and np.inf) to 0
out = out.astype('uint8')
out = Image.fromarray(out, 'RGBA')
return out
它在Windows上运行得非常好,但当我将其移到Ubuntu服务器时,它会给我以下错误:
File "ImageStitcher.py", line 21, in alpha_composite
src_a = src[alpha]/255.0
IndexError: 0-d arrays can only use a single () or a list of newaxes (and a single ...) as an index
我在两者上使用相同版本的PIL和相同版本的numpy
知道这里发生了什么吗?我听说PIL只支持Windows上的某些东西。。。这里会是这样吗?