Новое изображение, снятое с помощью камеры, отличается от того же изображения, загруженного с камеры? - PullRequest
0 голосов
/ 06 декабря 2009

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

Спасибо! Patrick

Ответы [ 2 ]

0 голосов
/ 06 декабря 2009

API для возврата вам изображения возвращает вам необработанные данные с камеры или изображение, преобразованное в необработанные данные из библиотеки.

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

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

0 голосов
/ 06 декабря 2009

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

Таким образом, если вы не сможете найти способ надежного преобразования изображения в JPEG с использованием точно того же процесса, что и при съемке с камеры, преобразование изображения в JPEG самостоятельно не принесет особой пользы.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...