Блумберг Д.


Перевод с английского: Шеховцов С.О.
Название статьи: Обзор вариантов алгоритмов масштабирования изображений
Источник: http://www.leptonica.com/scaling.html


Текст статьи

Масштабирование играет важную роль как для обработки, так и для анализа изображений.

Двоичные изображения с высоким разрешением (от 300 до 400 точек на дюйм) могут быть использованы для создания двоичных изображений низкого разрешения, которые используются для анализа или отображения на устройствах с низким разрешением (например, на дисплеях). Чтобы сделать версию изображения, которая была бы читаемой на полутоновом дисплее может быть использована функция scale-to-gray, которая создает полутоновое изображение (по крайней мере 4 бита на пиксель) разрешением около 100 точек на дюйм. Scale-to-grayтакже может быть использована для преобразования двоичных изображений в полутоновые эскизы разрешением 15 точек на дюйм. При таком разрешении, 10 х 7 дюймовое изображение сжимается до размера 150 х 105 пикселей, и отображается на мониторе с высоким разрешением в виде иконки размером 1,5 х 1,05 дюймов.

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

Наконец существует операция upscale-to-binary, которая трансформирует полутоновое изображение в бинарное с большим разрешением. Эта операция обратная к scale-to-grayи представляет собой пример восстановления изображения: восстанавливает двоичные изображения высокого разрешения, которые были до этого уменьшены до полутоновых. Мы не предоставляем никаких оценочных процедур для этого явно, но операция может быть выполнена с хорошими результатами при помощи последовательности двух операций: увеличения размера монохромного изображения при помощи линейной интерполяции, за которым следует бинаризации с использованием порогового уровня или сглаживание. (Мы предлагаем несколько эффективных составных операций этих типов.)

Алиасинг происходит, когда сигнал разбивается на участки с использованием частоты, меньшей, чем удвоенная максимальная частота сигнала. Чтобы предотвратить алиасинг высокие частоты удаляются из сигнала низкочастотным фильтром до разбиения. Синк фильтр идеально подходит тем, что его представление в домене Фурье имеет постоянное значение до частоты среза, где она стремится к нулю. Таким образом он будет удалять алиасинг с наименьшим размытием результата. Тем не менее, синк имеет бесконечное расширение, и нецелесообразен для эффективной обработки изображений. Для наших целей разумным компромиссом между приемлемым размытием и вычислительной эффективностью является использование сверточного фильтра постоянной высоты. Функция PixBlockconv() имеет вычислительных время, зависящее от размер фильтра, и используется для некоторых низкочастотных фильтраций.

Мы перечислим и прокомментируем эти (4) операций в следующем разделе, а затем погрузимся в детали.

Какие типы масштабирования изображений являются полезными?


Примечание: в дальнейшем, когда мы говорим о полутоновых изображениях, мы имеем в виду так же и цветные изображения. Цветные изображения, используемые в Leptonica либо полутоновые с использованием карты цветов (где каждый оттенок серого ссылается на конкретный цвет RGB), либо же полноцветные 24-битные RGB изображения. Кроме того, изображения в Leptonica, которые строго полутоновые являются также полутоновыми с использованием карты цветов (где каждое значение RGB в палитре на самом деле серое с R = G = B), или полутоновыми без палитры. RGB изображения можно рассматривать как три отдельных 8-битных полутоновых изображения. Leptonica предоставляет функции для разделения компонентов изображения, чтобы они могли быть обработаны как полутоновые 8-битные изображения, а также для комбинирования их в полноцветное  RGB изображение. Некоторые из самых быстрых цветовых операций не поддерживают это разделение, но вместо этого воздействуя на R, G и B компоненты на месте, вытаскивая их из 32-битных пикселей и вставляя обратно после завершения операций. Leptonica также предоставляет функции для преобразования 2-, 4- или 8- битных изображений с палитрой в полутоновые или полноцветные. Для всех операций масштабирования, кроме простого разбиения и дублирования пикселей, необходимо выполнить такое преобразование.

Существует четыре основных вида масштабирования изображений:

  1. полутоновое -> полутоновое
  2. двоичное -> двоичное
  3. двоичное -> полутоновое (как правило, уменьшение)
  4. полутоновое  -> двоичное (как правило, увеличение)

Класс 1 (полутоновое -> полутоновое) может быть сделано грубо путем дискретизации или, более точно, при помощи низкочастотного фильтра, а затем дискретизации, либо при помощи передискретизации с линейной интерполяцией.

Класс 2 (двоичное -> двоичное) могут быть выполнены для различных целей уменьшения изображения. Если целью является создание изображения без алиасинга, то нужно использовать фильтр нижний частот. Но если целью является анализ текстуры, или подготовка к морфологическому анализу на более низком разрешении, различные нелинейные фильтры могут быть использованы перед дискретизацией. Наибольший интерес представляют ситуации, когда фильтрация и дискретизация объединены, так что отфильтрованное изображение в полном разрешении не нужно обрабатывать перед дискретизацией. Если разрешение изображения увеличивается, может быть желательным сглаживание границ, чтобы предотвратить сильный лестничный эффект.

Класс 3 (двоичное -> полутоновое) также известен как scale-to-gray. Это обычно используется когда изображение уменьшается из двоичного скана высокого разрешения для отображения на полутоновом или цветном дисплее с низким разрешением. Мы предоставляем быстрый масштаба scale-to-gray для 2x-, 3x-, 4x-, 8x- и 16x-кратного уменьшения, все они осуществляются эффективно с помощью таблицы. Для достижения наилучших результатов на промежуточных значениях масштаба, двоичное увеличение используется перед быстрым scale-to-gray.

Класс 4 (полутоновое  -> двоичное), который является обратным к scale-to-gray, можно назвать его upscale-to-binary. Это полезно, полутоновое изображение с низким разрешением печатается на двоичном устройстве с высоким разрешением, таком как лазерный принтер. Если мы будем использовать размножение пикселей, то блоки, представляющие оригинальные пиксели, будут легко заметны на напечатанной странице. Однако блоки гораздо менее заметны, если их края сглаживаются, используя обычное полутоновое интерполированное масштабирование.