numpy 尝试编写代码,将两张照片转换为数组,将它们加在一起,然后除以2,然后用数组制作照片

2g32fytz  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(101)
import numpy as np
from PIL import Image

image1 = Image.open(
    "img1")

image2 = Image.open(
    "img2")

array1 = np.asarray(image1)

array2 = np.asarray(image2)

add = np.add(array1, array2)

divi = 2

output = np.divide(add, divi)
final_product = output.astype(int)

Image.fromarray(final_product).save("my.img.numpy.png")

每当我运行这个函数时,
TypeError:无法处理此数据类型:(1,1,3),<i8
问题发生在第29行
FYI

  1. Stackflow出于某种原因不允许我将其格式化为代码。2.我是python和numpy的新手
hrirmatl

hrirmatl1#

就像改变一样简单

final_product = output.astype(int)

final_product = output.astype(np.uint8)

np.uint8是来自图像的数组的正确dtype。当您对数组进行除法运算时,dtype将更改为float64
你可以像这样检查numpy数组的dtype

print(arr.dtype)

干杯!干杯!

相关问题