Принципы Генерации Изображений

Определение

Image Processing = Picture Processing = преобразование изображение с высокой Редундантностью в другое (улучшенное) высоко редундантное изображение и его Компрессия (сжатие по размеру хранилища)
Примеры: сканнер, цифровой ксерокс, цифровое фото, цифровое ТВ, а также цифровой рентген, компьютерная томография и т.д.
Важно: не путайте понятие Image Processing с понятием Computer Vision! И то и другое обрабатывают изображение, но Computer Vision в результате проведения анализа, выдает не новые изображения, а математические значения, измеренных величин.
Важно: Не путайте Computer Vision с Компрессией! И то и другое уничтожают Редундантность, однако, Компрессия лишь консервирует изображение с возможностью последующего восстановления, в то время, как Computer Vision уничтожает изображение полностью.

Растровая Матрица

Растровая Матрица (см лекцию: Растровая Графика ) - это Цифровое Изображение, создающееся различными устройствами - такими как Камеры и Сканнеры через процессы Дискретизации и Квантования.
Иногда Растровые Матрицы создаются в ручную или генерируются Машиной.
Важные определения:
Дискретизация: Отображение реального мира на сетке чувствительных сенсоров.
Квантование: Отображение аналоговой Оси Светлоты на ограниченном множестве целых чисел = АЦ-преобразование.



Оцифровка: = идущие друг за другом процессы 1) Дискретизации и 2) Квантования.
Бинаризация: = Квантование на две ступени (часто: 0-1 или 0-255) с учетом установленного порога Светлоты.

Принципы Дискретизации

Чтобы создать растровую матрицу - считывающее устройство должно выдать следующие данные:
1. количество Колонок и Строк x и y
2. для каждого места x,y реального Мира получить (измерить) следующие коэффициенты:
Энергия I света, падающего из места x,y реального Мира, деленного на энергию I0 света, падающего на место x,y реального мира : quotient(x,y) = I / I0.

Этот коэффициент должен быть пересчитан в значение градации серого или цвета:

grayvalue(x,y) = function( I / I0);

Альтернативы создание Растровых Матриц M(x,y):

a) Считывание с ненаправленным светом и множеством сенсоров (Фото):
Солнце или другие неуправляемые источники света освещают внешний мир. Диафрагма или линза проектирует уменьшенное изображение внешнего мира на плоскость, с расположенными на ней в виде набора Колонок и Срок сенсоров. Сигналы сенсоров преобразуются в целые числа и раскладываются по соответствующим позициям в матрице M. Сенсорная решетка (Дискретизатор) выдает значение x,y , а Аналогово-Цифровой Преобразователь = Analog-Digital-Converter = ADC = Квантизатор выдает значение цвета.
Плюсы: 1) естественный Свет 2) высокое быстродействие = возможно быстрое сканирование двигающихся объектов.
Минусы: 1) требуется очень много света I0 2) низкое разрешение из-за ограниченного количества Колонок и Строк сенсоров. 3) частые ошибки на фотографии: низкая освещенность, засвечивание, затенение, размытость

b) Считывание с направленным светом и одним сенсором (Сканнер):
Один управляемый источник света двигает и направляет один луч света с определенным спектром и определенной энергией на точку x,y. Луч света будет частично поглощён внешним миром (Абсорбция), частично пропущен (Трансмиссия), частично возвращен (Отражение). Один единственный сенсор = Фотоэлемент получает часть пропущенной или отраженной энергии, замеряет Коэффициенты и один АЦП получает из этого целое число. В каждый момент времени цифровые моторы, двигающие луч, возвращают позицию x,y и Фотоэлемент+АЦП возвращают точное значение серой или цветной точки.
Плюсы: 1) высокое разрешение = возможно большое количество Колонок и Строк 2) минимум рассеивания света - высокая четкость 3) никакого затенения
Минус: низкое быстродействие = запись двигающихся объектов невозможна.

c) Считывание непроницаемых объектов = Дискретизация Отражения:
Плюсы: 1) Работает почти со всеми объектами, которые обычно являются непрозрачными. 2) возможны большие расстояния между источником света, объектом и сенсором.
Минус: Коэффициент очень низкий, так как большая часть световой энергии поглощается или рассеивается.

d) Считывание прозрачных объектов = Дискретизация Трансмиссии:
Плюс: Коэффициент высокий, т.к. минимум Света поглощается или рассеивается.
Минусы: 1) Работает чаще всего только со специальным светом, например рентген, Гамма-излучение 2) Необходимо короткое расстояние между источником света, объектом и сенсором.

Примеры:
Фото-считывание непрозрачных объектов: Фото, Видео.
Сканирование непрозрачных объектов: Сканнер, Копировальная машина, Радар
Фото-считывание прозрачных объектов: Диапозитив, Diapositiv, LCD-Проекторы, Рентген, Микроскопия клеток и тканей.
Сканирование прозрачных объектов: Компьютерная Томография, УЗИ, Гамма-Камера.
Смешанные формы: Профессиональные Сканнеры и Копировальные машины являются смесью из Фото-считывания и сканирования. Они содержат один или несколько отдельных сенсорных массивов, как правило, с 4096 сенсорами = Фото-принцип, которые передвигаются параллельно с помощью линейных моторов = Сканнер-принцип.
Лучшее качество изображения выдает комбинация из сканерного и трансмиссионного считывания: много времени, никакого рассеивания, никакого затенения и высокие Коэффициенты позволяют получить более высокое разрешение и четкость изображения.

Компрессия

Картинки содержат огромную Редундантность и соответственно требуют большого места для хранения и более широкий канал передачи данных. При технических ограничениях встает вопрос об уничтожении Редундантности - уменьшении Длины Кода = Компрессии.

Уменьшение Кода определяется следующим коэффициентом:


Codelength after
Kompression = ------------------- * 100%
Codelength before

При этом в числителе и знаменателе стоят значения количества элементов кода одного типа (обычно Биты).

Различаются следующие виды Компрессии:
a) компрессия без потерь, что значит - из компрессированных данных можно полностью восстановить предыдущее изображение.
b) компрессия с потерями - восстановленное изображение, в общем случае, хуже оригинала.
Минусы компрессии:
1) Перед записью Картинка должна быть обработана программой Компрессии.
2) Перед отображением Картинка должна быть обработана программой Декомпрессии.
3) Программы Компрессии и Декомпрессии должны зеркально соответствовать друг другу.
4) Программы Компрессии и Декомпрессии требуют загрузки железа и временной памяти.
5) Компрессия предсказуема только статистически, но может сильно отличаться индивидуально для каждой Картинки.
6) При Компрессии с потерями - предсказать потери можно только статистически.

Наиболее старая и часто используемый метод:
Компрессия Изображений без потерь = Run Length Code = RLC = Run Lenght Encoding = RLE
используется для передачи Факсов.
Суть метода в передаче пакетов нулей и единиц.
Первое, третье, пятое число содержит количество нулей в строке, а второе, четвертое, шестое число содержит количество единиц в строке. Пустая строка кодируется одним целым числом = количество точек в строке.
Строки, начинающиеся с единиц на первой позиции получают один ноль.
Часто строка заканчивается восклицательным знаком - разделителем строк для распознавания ошибок (см. ниже).
Это хороший метод Компрессии для текстов (факсов), где средняя количество черных точек всего 2% и поэтому количество нулей непомерно высоко.

Пример: 4-- строчное бинарное изображение B

 0011001000 22213 
B = 0101010000 -> RLC = 1111114
1010101001 0111111121
0111110000 154

Summ = 40 Bit Summ = 25 Integer

Этот пример сжимает 40 бит в 25 целых чисел. Обычно используется тип UInt16 (= 16 Bit без знака). Таким образом Компрессия равна 25*16Bit * 100% / 40Bit = 1000 %.
Т.е. запакованная Картинка с 10 раз больше незапакованной.
Компрессия выше 100% конечно никому не нужна.
Такое бывает, если:
1) Картинки очень маленькие;
2) Картинки имеют часто меняющееся содержание (рябь);
3) Картинки, которые уже запакованы.
Реальные бинарные картинки с длиной строки 4096 (как у Факса) имеют как правило Компрессию = 5%, т.е. упакованная Картинка в 20 раз меньше оригинала.

Также с помощью RLC можно сжимать Картинки в цвете или с градациями серого. Для этого - кроме счетчика необходимо указывать значение цвета точек. Тем не менее на картинках с большими одноцветными областями эта Компрессия может быть эффективной.
Пример:
AAAAAAABBBB -> A7B4

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

Другие варианты компрессии без потерь:
Метод Фаххмана: более часто встречаемые значения кодируются меньшим количеством бит, реже встречающиеся большим количеством бит.
Алгоритм Лемпеля-Зива-Велча = LZW используется в ZIP, GIF, PDF: Часто используемые последовательности сохраняются только раз, после этого сохраняются только ссылки на эти последовательности.

Компрессия с потерей качества:
JPEG, MPEG на основе Фурье-Трансформации.