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).

Другие вопросы по тегам