想知道两个numpy数组是否彼此靠近...
就像我们有2个图像的2个(2-d)numpy数组,我想知道它们是否彼此靠近(它们是否相似)也不相等,
无论如何,相似性的可能性是否接近1?
就像任何分类器一样,但我只是想要没有机器学习的分类器。
假设我们有2个像素:
a = [255, 250, 3]
b = [255, 255, 3]
err = [(bb-aa)/max(aa,bb) for aa, bb in a, b]
然后是概率
p = 1 - np.mean(np.array(err))
答案 0 :(得分:0)
好的,这应该按照您的描述进行。
import numpy as np
im1 = np.random.randint(0,255,size=(2,2,3)).astype('float')
im2 = np.random.randint(0,255,size=(2,2,3)).astype('float')
p = 1 - np.mean(np.abs(im1-im2)/np.stack((im1,im2),-1).max(-1))
要计算p,此代码逐个像素相减,然后取绝对值,然后除以每个像素每个通道的图像之间的最大值。这有点令人困惑,但这就是您所描述的。您可以拆除一个衬板,以查看每块衬板的功能。
关键点:您的图像必须是float数据类型,此功能才能起作用。