Аппроксимировать необработанные данные изображения с iPhone6 ​​без приложения путем обратной обработки с использованием метаданных? - Фотопедия
2 голосов
/ 31 января 2017

примечание: Чтобы сохранить существенный ответ @ MichaelClark ниже, я вызвался оставить этот вопрос здесь и разрешить его закрыть, вместо того, чтобы просто удалить его (см. Обсуждение ниже ответа) , Это означает, что я добровольно съедаю понижающие голоса, поэтому, пожалуйста, уделите минутку, чтобы обдумать это, прежде чем произносить одно. Спасибо!


Можно ли реконструировать аппроксимацию исходных необработанных данных датчика из загруженных изображений iPhone 6, интерпретируя метаданные и математически отменяя все, что было сделано в телефоне?

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

Я обычно использую Python для всего, что я делаю, но если есть свободное программное обеспечение, я мог бы рассмотреть это. Если математика там, я могу написать свой собственный сценарий. Я хочу понять, что я делаю больше, чем найти быстрое решение.

Если я увижу что-то интересное или полезное с этим, я внесу DSLR позже.

Что я планирую сделать:

Я хотел бы взглянуть на относительно небольшие цветовые различия между двумя областями изображения и посмотреть, увеличивается или уменьшается сдвиг между одной фотографией и другой. Например, в каждом изображении я определю два прямоугольника, а затем просто вычислю r = R / (R + G + B), где R, G и B интегрированы в прямоугольнике. Таким образом, r1 и r2 могут быть 0,31 и 0,32, и я скажу, что есть сдвиг 0,01.

Изображения довольно плоские - белая бумага, отражающая окружающий свет. Я буду поддерживать то же расстояние и угол. (примечание: здесь я спрашиваю только об этапе обработки данных, поэтому я лишь в общих чертах описываю это, чтобы лучше дать представление о том, как я буду использовать данные, а не о том, как я буду их интерпретировать.)

Я сделаю то же самое для следующей фотографии и посмотрю, будет ли сдвиг больше или меньше. Это «научный материал», но не серьезный научный материал, и я понимаю, что это не лучший способ продолжить.

Ответы [ 2 ]

6 голосов
/ 31 января 2017

Неа. Причина в том, что все необработанные данные не представлены ни в одной отдельной интерпретации этих данных, используемых для создания изображения JPEG. Большая часть необработанных данных была отброшена и не может быть восстановлена.

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

(Да, теоретически возможно создать изображение с таким ограниченным диапазоном яркости и цвета, чтобы информация в необработанном файле была настолько однородной от одного пикселя до следующего, что все это можно представить в 8-битном формате Но кому нужны сплошные чисто белые или сплошные черные фотографии? При съемке сцены, которая содержит области разной яркости, цветов и текстур, общие данные в необработанном файле почти наверняка превышают возможности 8-битного дисплея или 8-битный формат изображения.)

Если есть какое-либо изменение яркости или цвета от одного пикселя к следующему, градации будут гораздо лучше / плавнее с необработанным файлом, чем с JPEG. 8-битные JPEG-изображения допускают только 256 дискретных значений для каждого цвета между полностью темным и полностью светлым. 12-битный необработанный файл допускает 4096 дискретных значений на цвет. 14-битный необработанный файл допускает 16 384

Если значения вдоль линии пикселей увеличиваются на единицу для каждого последующего пикселя при перемещении слева направо 14-битного файла, тогда для строки длиной 64 пикселя будет 64 дискретных значения. Но будет только одно изменение в значении одной единицы на той же строке 64 пикселей с 8-битным файлом. Теперь предположим, что у нас есть еще одна строка из 64 пикселей, в которой значения в 14-битном файле более неправильные. Они идут вверх и вниз по мере того, как мы движемся справа налево, но все они остаются в тех же 64 дискретных значениях, что и первая строка. После преобразования в 8 бит мы не сможем определить разницу между первой строкой и второй. В 14-битном необработанном файле есть 64 возможных значения, которые все преобразуются в одно и то же значение в 8-битном формате JPEG. Теперь умножьте эти 64 возможных значения на каждый пиксель изображения. Вот как много возможных разных версий 14-битного необработанного файла будет представлено одним и тем же 8-битным jpeg. Если у вас есть только 1-мегапиксельное изображение, то это 64, возведенное в степень 1 М (64 ^ 1 000 000)!

Подробнее о том, какая информация содержится в необработанном файле, см .: В файлах RAW хранится 3 цвета на пиксель или только один?

2 голосов
/ 01 февраля 2017

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

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

...