Использование OpenCV Python, как бы вы сделали все черные пиксели прозрачными, а затем наложили поверх исходного изображения

Я пытаюсь сделать цветную маску, белую. И моя идея:

  • сделать черные пиксели прозрачными в маске
  • объединить два изображения
  • обрезать изображения

поэтому моя оригинальная скрытая область будет белой. Какой код / ​​методы OpenCV python мне понадобится?

Вот так:

оригинал

оригинал

маскировать

маскировать

Желаемый результат (посмеянный – без зеленых краев)

Желаемый результат (посмеянный - без зеленых краев)

Вместо

Вместо

2 Solutions collect form web for “Использование OpenCV Python, как бы вы сделали все черные пиксели прозрачными, а затем наложили поверх исходного изображения”

Я предполагаю сделать порог цвета, чтобы получить маску. В результате я получил первую быструю и грязную попытку с Hue 43-81, Saturation 39-197 и Brightness от 115-255: введите описание изображения здесь

Следующий шаг – это полный алгоритм заполнения, чтобы заполнить внутреннюю часть маски. Обратите внимание, что также выбирается одна небольшая область справа.

введите описание изображения здесь

Следующий шаг – это результат двух результатов (mask-filled_mask):

введите описание изображения здесь

Снова заполните целые комнаты и избавьтесь от шумных пикселей с двоичным открытием:

введите описание изображения здесь

Последняя маска изображения с созданной маской.

введите описание изображения здесь

Каждый шаг можно настроить для получения оптимальных результатов. Хорошей идеей является попытка выполнить шаги (например, с помощью imageJ), чтобы настроить рабочий процесс, а затем выполнить скрипты в python / openCV.

См. Также http://fiji.sc/Segmentation .

Я предполагаю, что ваша маска является логическим массивом numpy, а ваши 2 изображения – массивами numpy image1 и image2.

Затем вы можете использовать логический массив как множитель.

overlay= mask*image1 + (-mask)*image2 

Таким образом, вы получаете «истинные» пиксели от image1 и False пиксели от image2

  • Обучение и обнаружение HOG в Python с использованием OpenCV
  • python не может импортировать opencv, потому что он не может найти libjpeg.8.dylib
  • Проблемы с обработкой изображений с кровеносными сосудами
  • Аномалия с установкой эллипса при использовании cv2.ellipse с различными параметрами?
  • В чем разница между mat и matND?
  • Как отслеживать различные контуры в opencv python
  • Область интересов opencv python
  • Выберите ошибку тайм-аута на BeagleBone Black
  • Python - лучший язык программирования в мире.