Рекомендации библиотеки HDR с открытым исходным кодом
Поэтому я провожу некоторые исследования, связанные с визуализацией с высоким динамическим диапазоном (HDRI). Я уже проделал некоторую работу в OpenCV, связанную с выравниванием и удалением призраков (пока нет фактических манипуляций с HDR или создания), и теперь я хотел бы иметь возможность начать работать с изображениями HDR.
Может кто-нибудь порекомендовать хорошую библиотеку HDR с открытым исходным кодом, которая в идеале позволила бы мне сделать следующее:
Чтение / запись в формате HDR (я еще не зафиксировал конкретный формат, поэтому я открыт для предложений здесь)
Комбинируйте изображения в скобках для получения HDR-изображений, но таким образом, чтобы я мог получить доступ к функции камеры, которая создается, чтобы впоследствии я мог использовать ее для таких вещей, как использование различного количества изображений EB для внесения вклада в разные части HDR образ.
Относительно легко взаимодействовать с OpenCV (подробности см. Ниже).
Если это библиотека, которая позволяет легко взаимодействовать с OpenCV, это было бы идеально. Я не думаю, что в OpenCV в настоящее время есть какие-либо функции HDR, но кто-нибудь может мне сказать, есть ли способ конвертировать изображение HDR в формат, с которым будут работать алгоритмы OpenCV, такие как рисование? Например, я знаю, что OpenCV может работать с 64-битными изображениями с плавающей запятой; Могу ли я просто конвертировать изображение HDR в один из этих форматов и работать с ним?
Благодарю.
3 ответа
Привет, я спросил об этом давным-давно, и просто наткнулся на мой вопрос снова через Google, поэтому я подумал, что предоставлю быстрое обновление.
Я попробовал Image Magick с Magick++. После немалой работы мне удалось заставить его работать с форматом OpenEXR, но я так и не смог заставить работать Radiance (.hdr), что обидно, потому что я много работаю в MATLAB, который читает / пишет только Radiance для HDR,
Далее я попробовал FreeImage. Я мог читать и записывать hdr, а также форматы PFM с этим, но я обнаружил, что формат Fibitmap действительно закрыт, то есть трудно получить данные из карты Fibitmap в OpenCV Mat, и почти невозможно вернуть их обратно в Fibitmap.
В конце концов, я только начал использовать Portable Float Maps (PFM) и читать и писать их со своим собственным кодом, потому что формат очень прост. Опять же, это в исследовательской среде, поэтому, хотя PFM - довольно неловкий формат для долгосрочного хранения или коммерческого использования, он довольно хорош для исследовательских целей.
Я использую библиотеку FreeImage для загрузки HDR-изображений (эта библиотека поддерживает большинство необработанных форматов камер, типы изображений с плавающей точкой и 48-битные, 64-битные изображения).
Затем я создал конвертер класса в C++, который может конвертировать из изображений типа FreeImage в OpenCV и наоборот. FreeImage также имеет преобразования с тональным отображением для изменения HDR-изображений в 32-битные изображения.
Я бы сказал, что преобразование будет просто проще всего. Я бы посмотрел библиотеки imagemagick ( http://www.imagemagick.org/) для конвертации.