Русский
Русский
English
Статистика
Реклама

Перевод Обработка файлов RAW, полученных с камеры Raspberry Pi HQ

image

Когда большинство людей делает фотографию, им просто нужно нажать кнопку спуска на фотокамере или телефоне, и готовое к просмотру изображение, обычно в известном формате JPEG, почти мгновенно появится на экране. Однако для некоторых случаев требуется больше контроля над получением этого самого JPEG. К примеру, вам может захотеться увеличить или уменьшить активность функции удаления шума, или вам может показаться, что цвета получились не совсем верно.

И тогда на помощь приходят файлы RAW. В данном контексте необработанное (raw) изображение это прямая передача данных, полученных от пикселей фотоматрицы, и не прошедших дополнительную обработку. Обычно такие файлы имеют относительно стандартный формат байеровского изображения, названный в честь Брайса Байера, изобретшего эту технику в 1974 году во время работы на компанию Kodak. Идея в том, чтобы не дать имеющемуся на борту процессору обработки изображений (ISP) превратить необработанное байеровское изображение в пригодное для просмотра, а сделать это самостоятельно при помощи отдельной программы, которую обычно называют конвертером RAW.


Байеровское изображение записывает только один цвет для каждого из пикселя по приведённой схеме

Иногда необработанное изображение сравнивают со старой технологий фотографического негатива, и хотя многие производители фотокамер используют собственный формат, наиболее распространённым видом файла RAW является формат Digital Negative [цифровой негатив] (или DNG), описанный Adobe в 2004. Остаётся вопрос как получить DNG-файлы от Raspberry Pi так, чтобы обработать их при помощи любимого конвертера RAW.

Получение необработанного изображения от Raspberry Pi


Многим читателям будет знакомо приложение raspistill, получающее изображения формата JPEG с камеры. У raspistill есть команда r, дописывающая в конец файла JPEG необработанные данные. Программы для просмотра JPEG всё равно покажут этот файл как обычно, проигнорировав многие мегабайты необработанных данных, прикреплённых сзади. Такой файл JPEG+RAW можно получить про помощи команды в терминале:

raspistill -r -o image.jpg


К сожалению, формат JPEG+RAW это просто то, что выходит из камеры, и он не поддерживается конвертером RAW. Чтобы воспользоваться им, нам нужно преобразовать его в формат DNG.

PyDNG


Данная утилита преобразовывает собственный файл JPEG+RAW Raspberry Pi в DNG. PyDNG можно поставить с github.com/schoolpost/PyDNG, там же есть и более развёрнутая инструкция. Вкратце, нам надо выполнить следующие шаги:

git clone https://github.com/schoolpost/PyDNGcd PyDNGpip3 install src/.  # для PyDNG требуется Python3


PyDNG можно использовать как часть более крупных скриптов на Python, или запускать самостоятельно. Продолжая пример с raspistill, мы можем ввести в строку ввода:

python3 examples/utility.py image.jpg


Полученный файл формата DNG можно обработать различными конвертерами RAW. Некоторые из них бесплатные (к примеру, RawTherapee или dcraw, хотя последний уже не разрабатывается и не поддерживается), а ещё есть много известных коммерческих вариантов (Adobe Camera Raw или Lightroom).

Баланс белого и цветовые матрицы


Одна из проблем с обработкой файлов RAW с Raspberry Pi на этом этапе связана с получением осмысленных цветов. До этого изображения рендерелись с уклоном в зелёный, поскольку не проводилось никакой балансировки цвета, а зелёный обычно наиболее чувствительный цветовой канал. Что ещё хуже, поскольку значения RGB в необработанном изображении просто отражают чувствительность пикселей датчика к различным длинам волн, они априори не точно коррелируют с теми цветами, которые мы воспринимаем глазами. Именно тут нам и пригодятся баланс белого и цветовые матрицы.

Нам требуются правильные множители белого для того, чтобы нейтральные части сцены выглядели нейтральными. Мы можем использовать обоснованное предположение от raspistill на их счёт, содержащееся в файле JPEG+RAW (или вы можете измерить собственное значение на каком-либо участке снимка например, на серой карточке). После этого для преобразования цветов, полученных с камеры, в цветовое пространство типа sRGB или Adobe RGB потребуются матрицы и справочные таблицы.

Результаты


Предыдущие попытки конвертации RAW и итоги, полученные после применения обновлённой версии PyDNG.





















Файлы DCP


Для людей, знакомых с файлами DNG, мы приводим ссылки на файлы DCP (DNG Camera Profile) с профилем камеры (в двоичном формате). Попробуйте разные файлы, мы поощряем пользователей на эксперименты, на создание собственных файлов и на публикацию полученных результатов!
  1. Базовый цветовой профиль, встроенный в PyDNG, результаты его работы приведены выше. Он относительно мелкий, и его можно посмотреть в виде файла JSON.
  2. Улучшенный профиль большего размера со справочными таблицами для сбалансированного рендеринга цветов.
  3. Похожий на предыдущий, но с некоторыми исправлениями для улучшения цвета кожи и неба.


Однако у этих файлов есть несколько особенностей:
  • Они откалиброваны для одной определённой Raspberry Pi High Quality Camera, а не для некоего среднего типичного модуля.
  • Источники света были те, что оказались у нас под руками в особенности, кажется, что лампа D65 передаётся немного неточно.
  • Калибровка работает только если цветовая температура не сильно отличается от двух источников цвета, участвовавших в калибровке в нашем случае это диапазон от 2900K до 6000K.


Поэтому тут ещё есть, что улучшать. Тем не менее, испытания на многих модулях показали, что эти параметры являются значительным шагом вперёд.

Благодарности


Джеку Хогану за калибрацию цветовой матрицы при помощи DCamProf, Цсабе Наги за добавление новых особенностей в PyDNG.

Дополнительные материалы


  • Существует много ресурсов, описывающих преобразование необработанного байеровского изображения в пригодное для просмотра изображения формата RGB or YUV. Например, статья в блоге Джека.
  • Чтобы понять роль цветовых матриц, которую они играют в файле DNG, обращайтесь к его спецификации. В частности, это описывается в главе 6.
Источник: habr.com
К списку статей
Опубликовано: 26.08.2020 14:06:49
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Python

Обработка изображений

Разработка на raspberry pi

Фототехника

Raspberry pim high quality camera

Raw

Конвертер

Рендер

Dng

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru