Преобразование изображения: RGBA в RGB - PullRequest
3 голосов
/ 03 марта 2010

при условии, что у меня был вывод RGBA (32 бита) из фрейм-граббера, когда альфа-канал не используется (значения сохраняются при заполнении фрейм-грабберами), есть ли эффективный метод преобразования в RGB (24 бита)?

Я имею дело с 5-мегапиксельными потоковыми изображениями, поэтому скорость тоже имеет значение. имейте в виду, что данные в альфа-канале могут быть отброшены.

Ответы [ 2 ]

3 голосов
/ 03 марта 2010

Просто скопируйте байты RGB и отбросьте альфа-канал (1 байт). Возможные оптимизации будут зависеть от конкретного оборудования. Например, у Intel есть специальные функции преобразования цвета в библиотеке IPP .

2 голосов
/ 03 марта 2010

Просто скопируйте данные и пропустите неиспользуемые альфа-байты.

Если скорость важна для вас, вы можете использовать SSE или MMX и использовать встроенные инструкции по перемешиванию битов. Это обычно немного быстрее, чем обычный c-код.

5 мегапикселей - это не так много данных, если только вам не нужно делать это со скоростью 100 кадров в секунду.

...