Как стать автором
Обновить

Качественное сканирование на бытовом сканере — идея для софта

Время на прочтение2 мин
Количество просмотров13K
Здравствуйте!

Каждый, кто достаточно часто сканирует фотографии, знает, сколько времени порой уходит на чистку скана от пыли и прочего аналогового мусора.

Казалось бы, решение очевидно — хорошенько протрите сканер, но не всё так просто, как хочется.
Во-первых, идеально стекло всё равно не очистишь, во-вторых, пыль может быть с внутренней стороны, и в-третьих, проблемы, как оказывается, не только с пылью.

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

Те же, кто, как и я, пока что чистят фотографии вручную, быть может, тоже найдут что-нибудь полезное под катом (и ~500-600 кб картинок).


Итак, у сканеров мне встречались 4 проблемы:
— грязь и пыль на стекле;
— цветной ореол вокруг контуров;
— неточность привода сканера;
— шумы итоговой картинки.

Если последние 3 проблемы наверняка решены в более дорогих моделях, то от пыли не спасает даже цена.
Но не секрет, что пыль на сканере превращается, в основном, в белые пятна.
Поэтому предлагаю автоматически устранять пыль и цветовые искажения при помощи 2-проходного сканирования.

Идея проста: сканируем одну и ту же картинку с поворотом на 180 градусов, и используем более тёмные участки изображения из 2 результатов.

Почти вся пыль пропала

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

Так же, но простым смешиванием 50 на 50, устраняются цветные ореолы у контуров:

Хроматический ореол пропал

Тут есть одно неудобство: скорее всего, совместить всю картинку сразу не получится.

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

Кстати, даже сами пропорции изображения получаются разными при сканировании с поворотом на 90°:

Искажение пропорций

При этом, по одной оси, перпендикулярной движению сканера, размер должен быть правильный.
И, добавив ещё один проход с поворотом на 90°, можно исключить неравномерность привода сканера и получить точные размеры по обеим осям.

Итого, 3 раза сканируем картинку и на выходе (полностью автоматически в случае с программой) получаем близкое к идеалу — для данного сканера — изображение.

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

Конечно, возможно, что такой способ уже кем-то был реализован, и только мне такие программы не известны.
Что скажете, хабра-люди?
Теги:
Хабы:
Всего голосов 59: ↑58 и ↓1+57
Комментарии26

Публикации

Истории

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань