Как и у многих из нас, у меня есть тысячи фотографий, которые я хотел бы отсканировать. Я размышлял над процессом выполнения этого и вижу огромную задачу. Одной из болевых точек, которую я определил, является необходимость размещать каждое изображение отдельно на стекле для сканирования.
Меня интересует, существует ли какое-либо программное обеспечение с открытым исходным кодом, которое при сканировании нескольких изображений автоматически идентифицирует отдельные фотографии и предлагает сохранить их отдельно.
В настоящее время у меня есть принтер / сканер HP Photosmart, и я хотел бы использовать его, если это возможно.
2 ответа
Функция обработки программного обеспечения, которую вы ищете, называется сегментацией изображения. По крайней мере, под Linux я пока не знаю правильного решения. (Существует сценарий проверки сегмента сегментного изображения, основанный на ImageMagick - см. Также.)
Когда вы свободно размещаете свои фотографии на сканере, вам понадобится автоматическая сегментация и выкручивание, и оба варианта кажутся сложными с доступным бесплатным программным обеспечением, соответственно. часто требуют ручной постобработки. Кроме того, многие сканеры обладают раздражающим свойством того, что (0,0) пиксель находится на расстоянии нескольких миллиметров от угла стекла, что приводит к обрезке при размещении фотографий прямо по краю.
Так как насчет этого:
Предлагаемая альтернатива: сканирование с использованием шаблонов, разделение с помощью Image Magick
Постройте несколько картонных шаблонов с вырезами для нескольких фотографий, чтобы разместить их на стекле сканера. Некоторые намеки:
- Расположите шаблон на стекле сканера, чтобы он не мог двигаться, при необходимости приклеив его к одному краю.
- Поскольку ваши фотографии будут иметь несколько стандартных размеров, вам будет достаточно нескольких шаблонов.
- Создавайте шаблоны, чтобы максимизировать охват фотографиями. Это может означать поворот их на 90 градусов (для автоматической коррекции с помощью приведенных ниже команд сканирования) и комбинирование фотографий разных размеров.
- Область, покрытая фотографиями, должна быть прямоугольной, с минимальным пространством внутри, не покрытым фотографиями. Потому что сканирование этого пространства будет тратить время позже.
Определите область для сканирования. Это должна быть прямоугольная область, содержащая все ваши фотографии. Чтобы получить его смещения и размер, например, используйте XSane для создания предварительного просмотра, выберите область сканирования и найдите значения в «Окно → Показать дополнительные параметры».
Пакетное сканирование фотоколлажей. Вы хотите сохранить каждый фотоколлаж как один большой файл изображения каждый, но сканировать несколько таких коллажей в пакетном процессе. Для Linux мне нравится
scanimage
с опцией--batch
- вы просто нажимаете Enter, чтобы получить и сохранить следующее сканирование. Используйтеscanimage -A
чтобы найти специфичные для устройства параметры для ограничения области сканирования и установить для них значения, определенные на последнем шаге.Разделите фотоколлажи на отдельные изображения. Для этого используйте ImageMagick, поворачивая изображения там, где это необходимо. В Linux небольшой сценарий оболочки может сделать это для всех изображений, отсканированных по одному и тому же картонному шаблону. Как этот, обработка файлов с именем
collage-001.jpg
,collage-002.jpg
т. Д .: (осторожно, не проверено!)for file in collage-*.jpg; do convert "$file" \ -crop '1000x1500+0+0' -rotate 90 +write ${file/.jpg/.img1.jpg} \ -crop '1000x1500+1000+0' -rotate 90 +write ${file/.jpg/.img2.jpg} \ null:; done
Источники: этот ответ , который дополнительно имеет технику для изображений, не вписывающихся в память; этот пост, чтобы объяснить
null:
документы для -crop , -rotate и +write.
Другая альтернатива: пакетное сканирование XSane. Я также попытался использовать функцию пакетного сканирования XSane . Позволяет определить несколько областей сканирования на странице (см. «Окно → Показать пакетное сканирование»), в т.ч. параметры поворота на область сканирования. Таким образом, вы можете создать (и даже сохранить) одно определение области сканирования для каждого шаблона картона и нажать "Список пакетов сканирования", чтобы получить несколько изображений из шаблона. Однако для большого набора изображений это происходит намного медленнее, поскольку сканер вернется в нулевое положение после обработки одной области сканирования. (По крайней мере, это происходит с моим сканером. Не знаю, есть ли сканеры, где функции SANE могут избежать этого шага возврата к нулю, но я сомневаюсь в этом.)
Многие сканеры и все в одном устройстве имеют эту функцию. Я не хочу делать предложения о покупках, но быстрый поиск в Epson, Kodak (все еще рядом) и HP, как начало, может дать вам направление. Обычно вы можете поместить несколько фотографий на планшет, и программа сортирует отдельные изображения. Есть также некоторые устройства, которые имеют устройство подачи документов
Кажется, есть несколько вариантов программного обеспечения, как отмечено в комментариях. Фотошоп позволит вам отсканировать несколько фотографий, а затем разделить их. Эта ссылка для сканирования в Photoshop объясняет более подробно. Дополнительным преимуществом является то, что Photoshop также отлично подходит для работы с изображениями отдельно. Элементы Photoshop имеют такую же функцию и более дешевые элементы
Там наверняка будет много других решений