получить вероятность того, как два numpy массива близки друг к другу Python - PullRequest
0 голосов
/ 11 сентября 2018

Хотите знать, если два numpay массива близко друг к другу ... например, если бы у нас было 2 (2-ые) массива из 2 изображений, я хочу знать, не совпадают ли они друг с другом (они похожи или нет), есть ли вообще знать, близка ли вероятность сходства к 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 голосов
/ 12 сентября 2018

Хорошо, это должно сделать то, что вы описываете.

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, этот код вычитает пиксель за пикселем, затем принимает абсолютное значение, а затем делит на максимальное значение между изображениями на каждом каналекаждого пикселя.Это немного сбивает с толку, но это то, что вы описали.Вы можете разобрать один вкладыш, чтобы увидеть, что делает каждый кусок.

Ключевой момент: ваши изображения должны иметь тип данных с плавающей точкой, чтобы это работало.

...