Учитывая эти два массива:
a = np.array(
[
[
[1, 102, 103, 255],
[201, 2, 202, 255],
[201, 202, 202, 255]
],
[
[11, 120, 0, 255],
[0, 0, 0, 255],
[1, 22, 142, 255]
],
])
b = np.array(
[
[
[1, 102, 103, 255],
[201, 2, 202, 255]
],
[
[11, 120, 0, 255],
[221, 222, 13, 255]
],
[
[91, 52, 53, 255],
[0, 0, 0, 255]
],
])
a.shape # => (2, 3, 4)
b.shape # => (3, 3, 4)
Я хочу наложить a
и b
на 0, 0
и вывести маску, которая представляет собой, когда a
значения равны b
значениям.Сравниваемые значения являются полными пиксельными значениями, поэтому в этом случае [1, 102, 103, 255]
является значением.
Такая выходная маска будет великолепной:
result = np.array([
[
true,
true,
false
],
[
true,
false,
false
],
[
false,
false,
false
],
])
Идеальный ответ в моем случаегде совпадающие значения становятся [255, 0, 0, 255]
, а несовпадающие значения становятся [0, 0, 0, 0]
:
result = np.array([
[
[255, 0, 0, 255],
[255, 0, 0, 255],
[0, 0, 0, 0]
],
[
[255, 0, 0, 255],
[0, 0, 0, 0],
[0, 0, 0, 0]
],
[
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]
],
])
result.shape # => (3, 3, 4)
Это выглядит так:
[! [diff между a и b] [1]][1] * * тысяча двадцать-две