Обнаружил, что Canon 550D иногда сохраняет cr2 файлы с raw->sizes.flip=5
При этом LibRaw декодирует с неправильной ориентацией. Причем переключение с raw->sizes.flip=0 на raw->sizes.flip=5 происходит без видимых причин. Просто в процессе съемки серии темновых кадров.
Вылечил поставив в программе после status=libraw_open_file(raw, fname);
raw->sizes.flip=raw->sizes.flip%4;
А можно пример такого файла
А можно пример такого файла куда-нибудь выложить?
Ну там на narod.ru (или по почте просто пришлите на lexa@lexa.ru)
Починим.
Выложил пример
Выложил на рапиду два файла по 25МБ каждый:
Файл с нормальным flip: http://rapidshare.com/files/435138177/IMG_0335.CR2
и следующий файл снятый четырьмя минутами позже у которого flip=5 http://rapidshare.com/files/435138571/IMG_0336.CR2
Эти файлы из серии темновых кадров снимались прямо на телескопе.
Ага, спасибо. Критично ли,
Ага, спасибо.
Критично ли, чтобы фикс был в stable-ветке (0.11) или беты (0.12) достаточно? С точки зрения поддержки Canon между ними нет разницы.
Совершенно не критично.
Совершенно не критично. Спасибо!
Добрался до этого
Добрался до этого места.
В-общем, это действительно камера дурит, для двух кадров выдан разный CameraOrientation.
Править что-то в LibRaw считаю невозможным, сломается авторотация у всех пользователей.
Правильный (по инструкции) способ передать в LibRaw ваше желание о ротации - это не sizes.flip править, а params.user_flip
Речь не о желании ротации, а
Речь не о желании ротации, а о том что камера выдает нестандартное значение raw->sizes.flip=5 (ИМХО, это число должно быть в интервале от 0 до 3) и о том, как это значение обрабатывать.
Почему нестандартное? Ну то
Почему нестандартное?
Ну то есть камера выдает вообще CameraOrientation забыл какой, а LibRaw преобразует его в flip.
А flip - это битмаск:
4 - поменять местами ширину и высоту
2 - отзеркалировать относительно горизонтальной оси
1 - отзеркалировать относительно вертикальной
(применяется именно в таком порядке)
5 - это поворот на 270.
О! Не знал, что это битмаск.
О! Не знал, что это битмаск. По простоте душевной полагал, что это просто угол поворота в единицах пи пополам. Посыпаю главу пеплом и иду читать документацию :)
В документации про битмаск не
В документации про битмаск не написано:
===
Ориентация изображения (0 - не требует поворота, 3 - требуется поворот на 180, 5 - 90 градусов против часовой стрелки, 6 - 90 градусов по часовой).
===
А битмаск это по коду, т.е. можно и отзеркалить, например.