LibRaw и OpenCV

Я использую Canon EOS 1200D.
Эта камера создает файлы JPEG с разрешением 5184 x 3456.
Камера создает также файлы CR2.

Я использую LibRaw, чтобы открыть этот файл.

LibRaw processor;
processor.open_file("test1.CR2");

Если я отлаживаю свою программу, я вижу:

processor.imgdata.sizes.raw_height = 3516
processor.imgdata.sizes.raw_width = 5344
processor.imgdata.sizes.height = 3465
processor.imgdata.sizes.width = 5202
processor.imgdata.sizes.top_margin = 51
processor.imgdata.sizes.left_margin = 142
processor.imgdata.sizes.iheight = 3465
processor.imgdata.sizes.iwidth = 5202

1 / Почему не отображается разрешение 5184 x 3456?

Я также вижу четыре объекта:
процессор.tiff_ifd как это:

[0] {t_width=5184 t_height=3456 bps=8 ...}
[1] {t_width=160 t_height=120 bps=8 ...}
[2] {t_width=668 t_height=432 bps=16 ...}
[3] {t_width=5344 t_height=3516 bps=14 ...}

2 / Что означают эти четыре объекта?

3 / Я не понимаю, что такое утверждение:

processor.unpack();

делать.
Преобразует ли он формат RGBG в формат RGB?

Теперь я хотел бы создать cv :: Mat с разрешением 5184 x 3456 и без потери точности.

4 / Так как же мне преобразовать мой файл CR2 в cv :: Mat с форматом CV_16UC3?

Из нескольких файлов CR2 я хотел бы создать новое изображение со средним значением.

5 / Итак, когда у меня есть cv :: Mat с форматом CV_16UC3, как я могу сохранить его в файл без потери точности?

Спасибо.

РЕДАКТИРОВАТЬ

Итак, я должен использовать:

processor.imgdata.params.output_bps = 16;
processor.open_file("test1.CR2");
processor.unpack();
processor.dcraw_process();
libraw_processed_image_t* output = processor.dcraw_make_mem_image();

Но как я могу указать, чтобы использовать разрешение JPEG?
Я думаю, что это с:

processor.imgdata.params.cropbox

а как указать разрешение JPEG без жесткого кодирования?

2

Решение

Пожалуйста, обратитесь к документации LibRAW.

    1. LibRAW использует всю информацию, хранящуюся в необработанном файле. В камере и многие коммерческие конвертеры применяют некоторые обрезки по различным причинам. (см. обсуждение здесь http://www.libraw.org/node/2117).
    1. Необработанные файлы часто содержат несколько изображений: кроме самих необработанных данных обычно имеется одно или несколько небольших изображений для предварительного просмотра (миниатюры).
    1. unpack Метод только распаковывает данные из необработанного формата файла без демозаики. Это все те же необработанные данные. Чтобы получить данные RGB, обратитесь к разделу «Постобработка» в документации, особенно dcraw_process
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]