Главное > Сканобработка

Программы обработки больших сканов

(1/503) > >>

uxn:
Привет всем!

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

Я работаю в области САПР более 5 лет и, естественно, стараюсь облегчить свою ежедневную работу, которая включает в себя сканирование, обработку и печать чертежной документации самого разного размера (от А5 и до нескольких А0), качества (кальки, бывают и довоенные, пятнистые синьки, на которых и человек-то не все распознает, бумажные распечатки с огромным количеством мусора, сделанные с этих синек, фотографии чертежей) и объема (порядка сотен форматов А1 в день).

С самого начала столкнулся с явным дефицитом элементарных средств обработки больших растров (100 Мпикс … 1 Гпикс) на обычном 32-bit Wintel. Из используемых инструментов сейчас: XnView, Jasc Paint Shop Pro 9, Acrobat 9 Pro, Spotlight Pro, Scan Tailor. Photoshop не подходит, т.к. слишком часто не способен прочитать бинарные TIFF’ы (основной формат сканированных чертежей). GIMP совершенно не удовлетворяет по причине своей необыкновенной тормознутости (возможно его исправит переход на новое ядро GEGL). VIPS интересен, в частности как источник вдохновения, но нечеловеческий и явно недостаточный интерфейс nip2 невозможно использовать на практике. Вообще все эти программы (кроме Spotlight и Scan Tailor) больше ориентированы на обработку полноцветных или полутоновых фотографий, а бинарные растры в лучшем случае (XnView) хранятся в памяти в "родном" формате 1 пиксель в 1 бите. Очень мало специфических функций, рассчитанных на работу со сканами.

По всем этим причинам было решено разработать несколько консольных утилит, а в будущем и полноценный пакетный viewer/editor, которые делали бы обработку больших растров как можно быстрее (используя параллельные вычисления и векторные команды) и содержали бы действительно полезные на практике функции, реализованные на основе актуальных алгоритмов.

А теперь о технических деталях. Программы написаны на языке C++ и собраны MSVC11 для запуска под Windows, начиная с XP. Для работы требуют установленного Visual C++ Redistributable for Visual Studio 2012 Update 1. Из аппаратных средств понадобится процессор с SSE2 (Pentium 4 и выше). Программы интенсивно используют параллелизм, поэтому многоядерные процессоры будут хорошо загружены. Использование ОЗУ оптимизировано под обработку больших растров, так что задействовано будет лишь минимально необходимое количество памяти для каждой операции.

Ссылка на утилиты и их описание: https://www.box.com/uxn-img . Исходный код не выкладываю, т.к. он находится в процессе разработки и некоторые идеи ждут своей реализации и более тщательного описания используемых алгоритмов и структур данных.

Спасибо за внимание, жду ваших отзывов.

uxn:
Доступна новая версия: https://www.box.com/uxn-img
Изменения произошли в утилите ROTATOR


--- Цитата: change.log ---22.05.2013
 + rotator: Добавил бинарное масштабирование типа растр-вектор-растр
 * rotator: Корректное значение разрешения (DPI) после масштабирования

21.05.2013
 + rotator: Добавил возможность указания порога бинаризации при повороте
 * rotator: Переделал весь рендеринг с одноцветного на антиалиасинг
 * rotator: Исправил быстрый поворот в диапазонах [45; 135] и [225; 315]

20.05.2013
 * rotator: Изменил масштабирование с интерполяцией на построчный вывод
 * rotator: Исправил масштабирование с суффиксом t в режиме бинарного вывода

--- Конец цитаты ---

uxn:
Обновление: https://www.box.com/uxn-img
В утилите MORPHER добавлены фильтры бинарной порядковой статистики и медианы


--- Цитата: change.log ---28.05.2013
 + morpher: Бинарная медиана и ранговый фильтр
 * morpher: Ранг фильтра <= 100% теперь обрабатывается правильно

--- Конец цитаты ---

uxn:
Обновление: https://www.box.com/uxn-img
В утилите MORPHER добавлены параметрические и кольцевые фильтры


--- Цитата: change.log ---30.05.2013
 + morpher: Добавил кольцевые открытие и закрытие

29.05.2013
 + morpher: Добавил параметрические открытие и закрытие

--- Конец цитаты ---

Данные фильтры дополняют коллекцию отсеивающих шум преобразований.

На картинке показано действие трех таких фильтров (лучше просматривать в масштабе 100%):
исходное изображение, отсеивание связных компонент по порогу (refiner ct),
медиана (morpher m) и параметрическое открытие (morpher i).

Хорошо видно, как медианный фильтр уменьшает шум, но при этом закругляет края больших компонентов. Это происходит потому, что медиана устраняет любой шум: и мелкие темные пятна и светлые. Параметрические фильтры работают по-другому: открытие устраняет мелкий темный шум, а закрытие - светлый шум. Края крупных компонентов при этом остаются нетронутыми. Действие параметрического открытия напоминает фильтрацию компонент по порогу, но может применяться и к полутоновым картинкам. Параметрическая морфология реализована через фильтр порядковой статистики, т.е. является "продвинутой" модификацией медианы.

uxn:
Обновление: https://www.box.com/uxn-img
Доработка функции сглаживания фона в утилите REFINER и функций поворота и доворота в утилите ROTATOR


--- Цитата: change.log ---17.07.2013
 * rotator: Исправил быстрый поворот 32-битного изображения
 + rotator: Задание белого цвета фона при довороте
 + rotator: Возможность указания цвета фона при повороте, по умолчанию белый

16.07.2013
 * rotator: Ускорение быстрого поворота, если параллакс меньше 1 пикселя

12.07.2013
 * rotator: Коррекция измерения времени быстрого поворота
 * rotator: Оптимизация быстрого поворота в диапазонах [45; 135] и [225; 315]
 * rotator: Исправление быстрого поворота в диапазонах [45; 135] и [225; 315]

17.06.2013
 + refiner: Добавил обрезку значений гистограммы SSR по правилу трех сигм
 + refiner: Добавил возможность задания степени обрезки гистограммы SSR

14.06.2013
 + refiner: Добавил изопараметрический Single-Scale Retinex
 + refiner: Добавил растяжение гистограммы SSR
 + refiner: Добавил эквализацию гистограммы SSR
 - refiner: Убрал ручное задание линейных коэффициентов гистограммы SSR

--- Конец цитаты ---

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии