Хотите знать, находятся ли два массива numpy близко друг к другу ... например, если бы у нас было 2 (2-d) массива numpy из 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 ответ
Хорошо, это должно делать то, что вы описываете.
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 этот код вычитает пиксель за пикселем, затем принимает абсолютное значение перед делением на максимальное значение между изображениями в каждом канале каждого пикселя. Это немного сбивает с толку, но это то, что вы описали. Вы можете разобрать одну подкладку, чтобы увидеть, что делает каждая деталь.
Ключевой момент: ваши изображения должны иметь плавающий тип данных, чтобы это работало.
Похожие вопросы
Новые вопросы
arrays
Массив - это упорядоченная линейная структура данных, состоящая из набора элементов (значений, переменных или ссылок), каждый из которых идентифицируется одним или несколькими индексами. Когда вы спрашиваете о конкретных вариантах массивов, используйте вместо них следующие связанные теги: [vector], [arraylist], [matrix]. При использовании этого тега в вопросе, относящемся к языку программирования, пометьте вопрос используемым языком программирования.