18 / 8 / 4
Регистрация: 26.01.2014
Сообщений: 164
|
||||||
1 | ||||||
Альфаканал в изображении04.03.2014, 13:36. Показов 2706. Ответов 14
Метки нет (Все метки)
Пишу хромакеинг, использую OpenCV для того, чтобы получать картинку с камеры.
1. Получаю IplImage (изображение opencv). 2. Преобразовываю его в HBITMAP и помечаю ненужные мне пиксели для отсеивания белым цветом. 3. Преобразовываю в Gdiplus::Bitmap, и теперь, мне нужно белые пиксели сменить прозрачными.
Есть идеи по сменить формат пикселей, но я новичок, не знаю как. Пожалуйста!
0
|
04.03.2014, 13:36 | |
Ответы с готовыми решениями:
14
Полетел альфаканал Отметки на изображении Артефакты на изображении Пиксели в изображении |
121 / 121 / 32
Регистрация: 04.03.2013
Сообщений: 370
|
|
04.03.2014, 14:38 | 2 |
Да вроде все правильно. М. б. фон черный? И GdiplusStartup, GdiplushShutdown вызваны? Давайте весь код.
0
|
Заблокирован
|
|
04.03.2014, 14:49 | 3 |
ну ты же в цикле всем пикселям один и тот же цвет чёрный задаёшь, а чтоб он был прозрачный - тебе альфа блендинг нужен.... В общем по конкретней задачу описывай
0
|
18 / 8 / 4
Регистрация: 26.01.2014
Сообщений: 164
|
||||||
04.03.2014, 14:54 [ТС] | 4 | |||||
Это функция перерисовки окна:
получаем кадр с камеры в m_hBitmapFrame уже отхромакеинное (белым цветом) потом конвертируем в Bitmap в переменную pBitmap, уменьшаем в pBitmapResized и потом выводим между слоев но последний слой(самый нижний перекрывается кадром без альфа канала), а нужно чтоб кадр был с альфой, чтоб был виден задник
0
|
Заблокирован
|
||||||
04.03.2014, 15:03 | 5 | |||||
Твоя ошибка в том, что ты используешь BitBlt, используя при этом GDI+.
Раз используешь GDI+ - то и делай всё на нём, лень разбираться в твоём коде, но тебе в картинке твоей не надо подменять цвета, надо просто рендерить её куда надо с COLOR_KEY В твоём случае (альфа тебе не нужна), просто отрывок из какой - то старой своей программки:
1
|
121 / 121 / 32
Регистрация: 04.03.2013
Сообщений: 370
|
|
04.03.2014, 15:06 | 6 |
Не ну вообще прозрачность была поставлена правильно. alpha = 0 - полностью прозрачный.
Ты переносишь прозрачный объект gdiplus на hBitmap, который не поддерживает прозрачность. Естественно они будут черные.
1
|
18 / 8 / 4
Регистрация: 26.01.2014
Сообщений: 164
|
||||||
04.03.2014, 15:19 [ТС] | 7 | |||||
у меня BitBlt() используется для двойной буфферизации же, я новичок в Gdi+, поэтому нашел пример и использую его теперь. Раньше я использовал родной windows GDI
проблема не в этом BitBlt совсем сейчас попробую ImageAttributes Добавлено через 1 минуту FreeMan108, нене, я переношу на Gdiplus::Bitmap картинку HBITMAP нужно добавить Gdiplus::Bitmap'у альфу. Добавлено через 9 минут Получилось, парни! От души всем) Решил с помощью ImageAttributes
0
|
Заблокирован
|
|
04.03.2014, 15:31 | 8 |
Ну я же об этом сразу и сказал.
Кстате, как я и говорил выше - это использование ColorKey, в GDI+ можно использовать полноценно Alpha канал вместо прозрачного ключа - но это уже немного другая история
0
|
18 / 8 / 4
Регистрация: 26.01.2014
Сообщений: 164
|
|
09.03.2014, 11:21 [ТС] | 9 |
Всем привет еще раз, появилась такая проблема, что при кеенге, появляется определенного цвета окантовка вокруг объекта. Привожу скриншот кеера, на данный момент на котором кеется цвет стен)
Чтоб было видно какие края (черные линии, полоски итп). THE--MASTER, если не трудно, пожалуйста, расскажи как отсеивать используя не ColorKey, а именно альфу Сроки горят, так что прошу помощи!
0
|
18 / 8 / 4
Регистрация: 26.01.2014
Сообщений: 164
|
|
09.03.2014, 21:17 [ТС] | 10 |
Показываю еще один скриншот, тестовый кеинг (сейчас не важно что именно кеить) - я решил навести камеру на люстру c:
Главное подскажите мне пожалуйста, как решить вопрос с белой окантовкой по краям.
0
|
18 / 8 / 4
Регистрация: 26.01.2014
Сообщений: 164
|
|
11.03.2014, 00:08 [ТС] | 11 |
Нужна помощь, помогите пожалуйста.
0
|
Заблокирован
|
|
11.03.2014, 09:32 | 12 |
0
|
18 / 8 / 4
Регистрация: 26.01.2014
Сообщений: 164
|
|
11.03.2014, 12:30 [ТС] | 13 |
Собрал тестовый проект с сабжом внутри, отсеял ненужный хлам, скидываю в рарке, только нужно для запуска OpenCV 2.4.8
0
|
Заблокирован
|
|
11.03.2014, 14:09 | 14 |
Сообщение было отмечено igor_petrov как решение
Решение
Слушай, пока времени нет смотреть твой проект.
Вот тут можешь глянуть пример и заодно весь этот урок скачать - там как раз то, что тебе нужно: http://www.codeproject.com/Art... -using-GDI
0
|
18 / 8 / 4
Регистрация: 26.01.2014
Сообщений: 164
|
|
11.03.2014, 14:31 [ТС] | 15 |
THE--MASTER, благодарю за ответ, посмотрю.
0
|
11.03.2014, 14:31 | |
11.03.2014, 14:31 | |
Помогаю со студенческими работами здесь
15
Блики на изображении Сетка на изображении Проверка в изображении Сетка на изображении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как обучить нейросеть создания картинок на Python
bytestream 24.01.2025
В эпоху цифровых технологий искусственный интеллект становится неотъемлемой частью творческого процесса. Особое место в этой области занимает разработка и обучение нейронных сетей для создания. . .
|
Как обучить нейросеть генерации текста на Python
bytestream 24.01.2025
В современном мире искусственный интеллект и машинное обучение становятся неотъемлемой частью многих технологических решений. Одной из наиболее интересных и востребованных задач в этой области. . .
|
Машинное обучение на Python
bytestream 24.01.2025
Введение в машинное обучение на Python
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, которая позволяет компьютерным системам. . .
|
Как удалить вирус-майнер с компьютера
hw_wired 24.01.2025
Вирусы-майнеры стали одной из наиболее серьезных угроз для пользователей компьютеров. Эти вредоносные программы тайно используют вычислительные ресурсы зараженного устройства для добычи криптовалюты. . .
|
Что такое веб-сервер, для чего он нужен и как работает
bytestream 24.01.2025
В современную эпоху цифровых технологий веб-сервер является фундаментальным компонентом интернет-инфраструктуры, обеспечивающим функционирование множества онлайн-сервисов и веб-сайтов. Этот. . .
|
Как в цикле for перебрать все элементы в словаре в Python
bytestream 24.01.2025
Словари в Python представляют собой мощные структуры данных, которые позволяют хранить информацию в формате ключ-значение. Эта особенность делает их незаменимыми при работе с данными, где требуется. . .
|
Как отменить rebase в Git
hw_wired 24.01.2025
Git rebase представляет собой мощный инструмент для управления историей коммитов в системе контроля версий Git. Этот механизм позволяет разработчикам изменять последовательность, комбинировать или. . .
|
Как поменять цвет input placeholder с помощью CSS
bytestream 24.01.2025
В веб-разработке оформление элементов пользовательского интерфейса играет ключевую роль в создании привлекательного и интуитивно понятного дизайна. Особое внимание уделяется формам ввода данных, где. . .
|
Как перебрать все значения в перечислении (enum) в C#
bytestream 24.01.2025
Перечисление (enum) в языке программирования C# представляет собой специальный тип данных, который позволяет определить набор именованных констант. Этот мощный инструмент особенно полезен, когда. . .
|
Как обойтись без проверки на null, чтобы избежать NullPointerException в Java
bytestream 24.01.2025
NullPointerException (NPE) является одним из самых распространенных исключений в Java, создающих серьезные проблемы при разработке программного обеспечения. Данное исключение возникает при попытке. . .
|
Что лучше использовать в href ссылок в JavaScript: "#" или "javascript:void(0)"
bytestream 24.01.2025
При разработке веб-приложений важную роль играет правильное использование HTML-ссылок в сочетании с JavaScript. Одним из ключевых аспектов является выбор корректного значения атрибута href для. . .
|
Как узнать индекс элемента списка по его значению в Python
hw_wired 24.01.2025
При работе с коллекциями данных в Python часто возникает необходимость не только манипулировать элементами списка, но и определять их точное местоположение. Индекс элемента представляет собой. . .
|