2016-02-21 4 views
0

Я работаю над приложением, которое должно работать с NV21 YUV-форматом на Android. Просто для проверки того, что мой алгоритм мне нужно, чтобы сохранить формат YUV в RGB, а затем в растровый файл, чтобы взглянуть на него. Поэтому алгоритм, который я написал для этого, очень прост. Программа загружает изображение в формате bitmab RGB, преобразует его в NV21, а затем преобразует его в RGB и сохраняет на диск. Я реализовал преобразования, указанные в Wikipedia YUV subject. Я использую Полный размах для BT.601 для преобразования RGB в YUV и YUV420sp (NV21) для преобразования RGB (Android) для RGB в YUV. Однако изображение теряет свои цвета. Я много раз проверял код (который очень прост неоптимизирован и прост), и я не обнаружил ошибок. Что-то не так с конверсиями, которые я использую?Как преобразовать NV21 YUV в RGB и обратно

Входное изображение:

enter image description here

Вывод изображения:

enter image description here

+0

показать мне свой код – user3528438

ответ

1

не зная ничего о вашем коде, это почти невозможно сказать что-то определенное.

Однако то, как изображение будет поврежден, что указывает на то:

  1. яркостной (Y), самолет был обработан правильно.
  2. Исправлена ​​некорректная чередование (V/U чередующаяся, 4: 2: 0 подвыбор), причем все строки цветности совпадают, что обычно происходит, когда вы забываете перемещать свои смещения дальше при обработке последующих строк. Распространенность зеленых тонов в цветовой модели YUV часто указывает, что вы читаете нули для плоскостей цветности (может быть, фактически это область мусора).

Я предлагаю вам дважды проверить правильность обработки указателей U/V при преобразовании из RGB или в RGB. Rememer, NV21 смешанно-планарный и 4: 2: 0 подвыбор, в то время как общий RGB (особенно если вы используете его для импорта/экспорта битмапа) может быть либо плоским, либо чередующимся, но не подвыборным.

Кроме того, как правило, гораздо проще получить исчерпывающий совет, если предоставить какой-то код, показывающий, как вы справляетесь с вещами.