获取概率两个numpy数组如何彼此靠近python

时间:2018-09-11 20:42:30

标签: arrays numpy computer-vision image-recognition cv2

想知道两个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))

1 个答案:

答案 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数据类型,此功能才能起作用。