Python - NumPy Array Логическая операция XOR в байтовом выражении
Я читаю изображение с помощью Подушки и преобразую его в массив.
A = numpy.asarray(Image.open(
ImageNameA).convert("L"))
B = numpy.asarray(Image.open(
ImageNameB).convert("L"))
print A
[[255 255 255 ..., 255 255 255]
[255 255 255 ..., 255 255 255]
[255 255 255 ..., 255 255 255]
...,
[255 255 255 ..., 255 255 255]
[255 255 255 ..., 255 255 255]
[255 255 255 ..., 255 255 255]]
Теперь, когда я делаю какую-либо логическую операцию с этими двумя массивами, я получаю их в форме "True" и "False".
Answer = numpy.logical_xor(A,B)
print numpy.logical_xor(A,C)
[[False False False ..., False False False]
[False False False ..., False False False]
[False False False ..., False False False]
...,
[False False False ..., False False False]
[False False False ..., False False False]
[False False False ..., False False False]]
Мои функции обработки изображений не могут работать с True, False ... Как я могу получить изображение в виде 0, 255 (в байтах)
1 ответ
Решение
Из названия вопроса я полагаю, что функция, которую вы намеревались использовать, действительно numpy.bitwise_xor
он будет выводить массивы в диапазоне 0-255, как вы ожидаете.
logical_xor
обрабатывает все числа выше 1 как True
и 0 как False
и всегда выводит логический массив (только 0 и 1).