获取两个 numpy 数组彼此接近的概率 python

get probability how two numpy arrays are close to each other python

想知道两个 numpy 数组是否彼此靠近... 就像如果我们有 2 个(2-d)2 个图像的 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))

好的,这应该符合您的描述。

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,此代码逐像素减去,然后取绝对值,然后除以每个像素的每个通道的图像之间的最大值。这有点令人困惑,但这就是您所描述的。您可以拆下一个衬里,看看每一块都在做什么。

一个关键点:您的图像必须是浮动数据类型才能工作。