![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| Darksquall |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 22.1.2004 Где: Москва Репутация: нет Всего: 4 |
Нужно вычесть одно изображение из другого, т.е.
есть одна картинка на ней нарисован кактус и мяч, есть вторая там только кактус, на картинках координаты кактусов и цвета совпадают, нужно вычесть и получить только мяч на конечной картинке, т.к. все остальное на двух картинка одиноково, то я думаю можно проверить пикселы и вынести в 3й битмап мяч. Я сравниваю попиксельно, но при большом изображении получаеться долго.
а т.к. изображения будут поступать довольно быстро и обрабатывать их нужно немного отставая от реал - тайм.Существуют ли какие нить другие способы? |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 2 Всего: 111 |
Не надо читать по одному пикселу. Читай хотя бы по строке. В этом случае используй ScanLine. Будет намного быстрее.
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Darksquall, про Scanline можете посмотреть на DRKB или в моем посте http://forum.vingrad.ru/index.php?showtopic=91640#
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Darksquall |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 22.1.2004 Где: Москва Репутация: нет Всего: 4 |
Благодарю за подсказку, почитал но ненашел как сравнить две строки из двух битмапов
вот так почемуто не работает
ошибки не выдает но на картинках например отличающихся 3мя пикселами в условие не заходит никогда, странно, может так его нельзя использовать? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Сравнивает адреса двух строк в двух битмапах, а не сами данные! Добавлено @ 13:09 Сравнивать нужно по пиксельно или поблочно Добавлено @ 13:10 В справке нашел такую функцию
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Darksquall |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 22.1.2004 Где: Москва Репутация: нет Всего: 4 |
Никогда бы не подумал что с битмапом богут быть трудности, это тоже не работает,
и так не работет, вроде как я к данным обращаюсь
alexeis1 а как можно вытащить данные, ведь если обращаться к данным так как в предыдущем примере, то в чем преимущество Scanline перех попиксельным сравнением? У тебя был наверняка такой опыт? Это сообщение отредактировал(а) Darksquall - 4.5.2006, 14:06 |
||||
|
|||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Darksquall, так это и было вытаскивание данных. Должно работать! А вы предварительно устанавливали pixelformt в pf24bit Добавлено @ 14:12 Скорость! Добавлено @ 14:17 Кстати
Верно только если изображение 256 цветов Для 24 бита на пиксел CompareMem(bmp2.ScanLine[y],bmp1.ScanLine[y], bmp1.Width*3) Это сообщение отредактировал(а) alexeis1 - 4.5.2006, 14:19 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Если изображения мяча и кактуса не пересекаются, то можно так:
Строго вычитает одну картинку из другой, показывая всю разницу. |
|||
|
||||
| Darksquall |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 22.1.2004 Где: Москва Репутация: нет Всего: 4 |
Ваууу BitBlt и здесь рулит, не знал что она так умеет.
Большое спасибо Snowy + тебе!!! |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Это эталонный код, согласно вопросу.
А в текущем виде его можно сократить:
P.S. Всегда пожалуйста. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |