Конвертировать YUV в сжатие с потерями с OpenCV - PullRequest
0 голосов
/ 18 ноября 2010

Как мне преобразовать изображение в цветовом пространстве YUV в изображение JPEG?

У меня есть необработанные данные изображения, сохраненные в переменной char *:

char* frame = (char*)camera->getFrame(); // YUV colorspace image data

Мне нужно вместо этого преобразовать это в данные изображения JPEG. Я не хочу сохранять его на диск, потому что я буду отправлять его в потоке.

Ответы [ 2 ]

1 голос
/ 19 ноября 2010

Проверьте opencv src на наличие файла cvcolor.cpp. Здесь есть все преобразования цветов.

Я предлагаю вам изменить существующие подпрограммы рядом с этой строкой:

/ * BGR / RGB -> YCrCb * /

Это почти то, что вам нужно для кодирования YUV. если его 4: 4: 4, а не 4: 2: 2 или 4: 1: 1

для сжатия jpg

  • Кодировщик и декодер jpg находятся в grfmt_jpeg.cpp, что происходит с #include "jpeglib.h"

  • Вы можете вызвать их напрямую

1 голос
/ 18 ноября 2010

Сам OpenCV не экспортирует эту функциональность. Самый чистый - использовать libjpeg для кодирования. Смотрите ответы на эти вопросы:

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