наложение изображений при отображении в OpenCV - PullRequest
3 голосов
/ 05 января 2011

У меня есть два изображения, которые я хочу отобразить друг на друге.одно изображение - одноканальное изображение, а второе - изображение RGB, но большая часть области прозрачна.

Как эти два изображения генерируются в разных функциях.Я знаю, чтобы просто отображать их поверх друг друга, я могу использовать одно и то же имя окна при вызове cvShowImage(), но это не работает, когда они рисуются из разных функций.При попытке этого я использовал cvCvtcolor(), чтобы преобразовать двоичное изображение из одного канала в RGB и затем отобразить второе изображение из другой функции.Но это не сработало.Оба изображения имеют одинаковый размер, глубину и количество каналов (после преобразования).

Я хочу избежать передачи одного изображения во вторую функцию и затем нарисовать их.Так что я ищу быстрый грязный трюк для отображения этих двух изображений с перекрытием.

Спасибо

РЕДАКТИРОВАТЬ: alt text

Ответы [ 3 ]

1 голос
/ 06 января 2011

Я не думаю, что это возможно. Вам придется создать новое изображение или изменить существующее. Вот статья, которая показывает, как это сделать: Наложения прозрачного изображения в OpenCV

1 голос
/ 05 января 2011

Нет возможности «наложить» изображения. cvShowImage() отображает одно изображение из памяти. Вам нужно смешать / объединить их вместе. Есть несколько способов сделать это.
Вы можете скопировать один в 1 или 2 канала другого, вы можете использовать логические операции, такие как AND, OR или XOR, вы можете использовать арифметические операции, такие как Add, Multiply и MultiplyScale (эти операции будут насыщать значения больше 255). Все это также может быть сделано с дополнительным изображением маски, таким как ваше изображение BLOB-объекта.
Естественно, вы можете захотеть сделать это в третий буфер, чтобы не перезаписывать ваши оригиналы.

0 голосов
/ 28 января 2011

Видимо, теперь это можно сделать с помощью версии OpenCV 2.1 http://opencv.willowgarage.com/documentation/cpp/highgui_qt_new_functions.html#cv-displayoverlay

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...