Я занимаюсь обработкой изображений, и мне нужно проверить, совпадает ли бинарное изображение с другим.Python Pillow: как наложить одно двоичное изображение поверх другого, чтобы создать композит?
Скорость обработки не является проблемой, и простую вещь, которую я думал сделать, это считать белые пиксели, оставшиеся после добавления обратного изображения A к изображению B (эти изображения очень близки, но не совсем - рейтинг их более или менее одинаковые важны для моей ситуации).
Однако, чтобы создать составное изображение, мне нужно включить «маску», размер которой равен двум изображениям.
У меня возникли проблемы с поиском примера создания маски онлайн и ее использования для функции Image.composite.
Вот мой код:
compA = ImageOps.invert(imgA)
imgAB = Image.composite(compA,imgB,??? mask)
Прямо сейчас, я создал маску всех нулей - однако, составное изображение не отображается правильно (А и В в точности те же образы, маска всех нулей - или все, что в этом отношении - не работает).
mask = Image.fromarray(np.zeros(imgA.size,dtype=int),mode='L')
imgAB = Image.composite(compA,imgB,mask)
Как работает эта маска?
Как просто добавить эти два бинарных изображения поверх каждого другого?
Хорошо, я думаю, это работает. Тем не менее, изображения массивов np, когда я их конвертирую, похоже, не имеют всех пикселей ... Для их просмотра я запускаю: 'Image.fromarray (arrayA, mode = 'L'). Show() '; мой первый набор изображений - это белый контур коробки на черном фоне - не заполнен ... но визуализация первого изображения после преобразования numpy приводит к заполнению вертикально полосатой белой коробки на черном фоне. – bordeo
Попробуйте 'Image.fromarray (arrayA.astype ('uint8'), mode = 'L')' – jez
ok, awesome - получил его. Спасибо. – bordeo