我试图计算两幅图像之间的差异。我期望结果是一个整数,但我没有得到我期望的结果
from imageio import imread
#https://raw.githubusercontent.com/glennford49/sampleImages/main/cat1.png
#https://raw.githubusercontent.com/glennford49/sampleImages/main/cat2.png
img1="cat1.png" # 183X276
img2="cat2.png" # 183x276
numpyImg1=[]
numpyImg2=[]
img1=imread(img1)
img2=imread(img2)
numpyImg1.append(img1)
numpyImg2.append(img2)
diff = numpyImg1[0] - numpyImg2[0]
result = sum(abs(diff))
print("difference:",result)
打印:
# it prints an array of images rather than printing an interger only
目标:
difference: <int>
我相信numpy数组的维数不是1,您需要执行与数组维数相同的求和次数,才能获得单个和值
在打印数据之前,您可能需要再添加一个“总和(结果)”(如果图像是二维的)
例如:
您正在使用Python的内置} ,这将在内部展平多维NumPy数组,然后对结果求和。此外,您还可以使用^{} 进行绝对计算:
sum
函数,它只执行一个求和along the first dimension of a NumPy array。这就是为什么将2D数组作为输出,而不是预期的单个整数。请在结果上使用^{使用
numpy.sum
意味着在答案中使用内置的sum
函数之前,您不再需要将数组重塑为扁平表示形式。对于将来的开发,始终对要在NumPy数组上执行的任何算术运算使用NumPy方法。它可以防止意外的行为,比如你刚才看到的(彩色)图像是一个3D矩阵,因此您可以使用
numpy.array(image)
将这些图像转换为numpy
数组,然后您可以得到这两个numpy
数组的差异最后的答案是三维数组
相关问题 更多 >
编程相关推荐