Могу ли я исправить фотографии с поврежденными данными jpeg?

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

Corrupt JPEG data: 1130 extraneous bytes before marker 0xd9

Ошибка не мешает мне просматривать или редактировать фотографии, но мне интересно, есть ли способ настроить пакетный процесс, который бы устранил эту проблему?

Ответ 1

Трудно сказать без изображения, чтобы попробовать, но я думаю, что ImageMagick будет правильно переписывать ваши изображения без лишних данных. Если вы на Linux, вероятно, установлен, найдите программу под названием convert и/или mogrify, которая принадлежит ImageMagick, иначе вы можете установить ее из здесь.

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

mogrify -set comment 'Extraneous bytes removed' *.jpg

Сначала создайте резервную копию файлов, прежде чем применять их к тысячам изображений!

Ответ 2

У меня возникла проблема, что файл jpg закончился досрочно, а mogrify не изменит размеры моих изображений. Моим решением этой проблемы было преобразование изображений в png и обратно в jpg. Это устранило проблему:

#!/bin/bash

mogrify -format png *.jpg
rm *.jpg
mogrify -format jpg *.png
rm *.png

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

Ответ 3

Я столкнулся с той же проблемой при создании модели классификации изображений: я переобучил модель (написанную в Tensorflow), используя множество изображений в качестве входных данных.

После некоторого исследования я обнаружил, что ошибка вызвана редактированием изображения (обрезка и поворот). Поскольку информация EXIF по-прежнему сохраняет исходное измерение, оно не соответствует последнему измерению после редактирования. Исправить очень просто, мы можем использовать mogrify из imagick, чтобы удалить устаревшую информацию EXIF.

mogrify <file name>

или

mogrify -strip <file name>