Библиотека или подход для извлечения значений каналов RGB в изображении RAW

Я ищу решение для сравнения изображений для разных целей.
Чтобы можно было анализировать, мне нужен доступ к значениям каждого пиксельного канала.
Например: формат RAW, который поддерживается многими камерами.

*
Есть ли библиотека с открытым исходным кодом, чтобы получить доступ к каналам,
или можно извлечь его непосредственно как байтовые значения?
*
В настоящее время я использую bitmap_image reader (https://github.com/ArashPartow/bitmap), но не очень хорошая идея конвертировать каждый раз необработанное изображение для BMP для анализа. репо добавлено в github, это своего рода библиотека, написанная на C ++ 14

Пожалуйста, предложите самый быстрый способ доступа к данным изображения, спасибо.

1

Решение

использование ImageMagick который устанавливается в большинстве дистрибутивов Linux и доступен для macOS и Windows.

В командной строке:

# Convert NEF raw file to 16-bit RGB data
magick image.nef -depth 16 rgb:image.bin

# Convert CR2 raw file to 8-bit RGB data
magick image.cr2 -depth 8 rgb:image.bin

Или используйте это с popen() в C / C ++ и напишите stdout:

magick image.dng -depth 16 rgb:-

а затем читать в C / C ++.


Если вы хотите определить размеры изображения перед чтением:

magick identify temp.png
temp.png PNG 640x480 640x480+0+0 8-bit Gray 2c 12348B 0.000u 0:00.009

Если используется версия 6, замените magick с convertи заменить magick identify с identify,


В качестве альтернативы, посмотрите на NetPBM PPM формат (см. P6 формат Вот)
и разработать код, чтобы прочитать его, а затем просто конвертировать все и вся в PPM отформатировать с ImageMagick и прочитайте это, что даст вам размеры в начале:

magick image.nef -depth 16 ppm:-
magick image.cr2 -depth 8  ppm:-

Обратите внимание, что это именно та стратегия, принятая CImg.

2

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector