Обработка изображения
Определение цифрового изображения
правитьНеобходимо отметить, что мы будем манипулировать с двумерными изображениями. Под изображением будем понимать функцию двух вещественных переменных , где – это интенсивность (яркость) в точке с координатами . Иногда обработке будет подвергаться не всё изображение, а некоторая его часть, которую в англоязычной литературе принято называть region-of-interest, ROI (область представляющая интерес, ОПИ). Для обработки на компьютере изображение должно быть дискретизировано и квановано. Дискретизованное и квантованное изображение называется цифровым. Цифровое изображение представлено в дискретном двумерном пространстве, где – номер строки, а – номер столбца. Элемент, расположенный на пересечении -ой строки и -го столбца называется пиксел (pixel – picture element). Интенсивность пиксела может описываться либо вещественным или целым числом. Относительная интенсивность в вещественных числах обычно изменяется от 0 до 1, а в целых числах от 0 до 255. Обычно физический сигнал, возникающий в точке , является функцией зависящей от многих параметров ( - глубина, – длина волны, – время). Однако мы будем рассматривать статические, и чаще монохроматические изображения.
Основные характеристики изображения
правитьСреди характеристик цифровых изображений следует выделить: Размер: этот параметр может быть любым, но часто выбирается исходя из особенностей регистрации изображения (например, видеостандарты PAL (625, 4:3), SECAM (625, 4:3), NTSC (525, 4:3)), особенностей последующей обработки (алгоритмы быстрого преобразования Фурье предъявляют особые требования) и т.п. Хотя в последнее время фреймграбберы интерполируют изображение до любых размеров, библиотеки БПФ справляются с изображением любых размеров. Количество цветов (глубина цвета) : точнее количество бит, отводимое для хранения цвета, определяется упрощением электронных схем и кратно степени 2. Изображение для хранения информации о цветах которого необходим 1 бит называется бинарным. Для хранения полутоновых (gray scale, gray level) изображений используется обычно 8 бит. Цветные изображения хранятся обычно с использованием 24 бит по 8 на каждый из трех цветовых каналов. Разрешение: измеряется обычно в dpi (dot per inch – количество точек на дюйм). Например, на экране монитора разрешение обычно 72 dpi, при выводе на бумагу – 600 dpi, при регистрации на ПЗС-матрице с размером одного элемента 9 мкм разрешение составит почти 3000 dpi. В процессе обработки разрешение можно изменить: на само изображение это не повлияет, но изменится его отображение устройством визуализации.
Методы обработки изображения
правитьВ основе алгоритмов обработки изображений положены в основном интегральные преобразования: cвертка, преобразование Фурье и др. Также используются статистические методы. Методы обработки изображений классифицируют обычно по количеству пикселов участвующих в одном шаге преобразования:
- поточечные методы в процессе выполнения преобразуют значение в точке в значение независимо от соседних точек;
- локальные (окрестностные) методы для вычисления значение используют значения соседних точек в окрестности ;
- глобальные методы определяют значение на основе всех значений исходного изображения .
Препарирование изображений
правитьСубъективность восприятия изображений человеком сильно усложняет применение формализованных подходов при решении некоторых задач их обработки. Поэтому часто строгие математические критерии оптимальности заменяют качественные представления о целесообразности той или иной обработки, опирающиеся на субъективные оценки результатов. К такому классу методов относится и препарирование изображений. Препарирование используется, когда необходимо подчеркнуть, усилить какие-то черты, особенности, нюансы наблюдаемого изображения с целью улучшения субъективного восприятия. В отличие от методов фильтрации при выполнении процедур препарирования на результат оказывает влияние значение интенсивности только в обрабатываемой точке, а не в ее окрестности. Такая обработка называемая поэлементной. Сущность поэлементной обработки изображений сводится к следующему. Пусть , – значения яркости исходного и получаемого после обработки изображений соответственно в точке кадра, имеющей декартовы координаты i (номер строки) и j (номер столбца). Поэлементная обработка означает, что существует функциональная однозначная зависимость между этими яркостями,позволяющая по значению исходного сигнала определить значение выходного продукта. В общем случае, как это учтено в данном выражении, вид или параметры функции , описывающей обработку, зависят от текущих координат. При этом обработка является неоднородной. Однако в большинстве практически применяемых процедур используется однородная поэлементная обработка. В этом случае индексы i и j в выражении могут отсутствовать. При этом зависимость между яркостями исходного и обработанного изображений описывается функцией: одинаковой для всех точек кадра.
Зеркальные отражения изображений
правитьЗеркальные отражения изображений в библиотеке IPL можно осуществить с использованием функции iplMirror, которая принимает три аргумента. При вызове функции iplMirror кроме указателей на исходное изображение srcImage и изображение-результат dstImage передается целочисленный аргумент flipAxis, который указывает, относительно какой оси будет осуществляться зеркальное отражение. Аргумент flipAxis может принимать следующие значения:
- 0 – для отражения относительно горизонтальной оси;
- 1 – для отражения относительно вертикальной оси;
- -1 – для отражения сразу относительно вертикальной и горизонтальной оси
Общие понятия фильтрации изображений
правитьИзображения, сформированные различными оптико-электронными системами и зарегистрированные с помощью разнообразных приёмников искажаются действием помех различного характера. Искажения изображения вносятся всеми компонентами изображающего прибора, начиная с осветительной системы (например, неравномерность освещенности предмета). Искажения, которые вносит оптическая система, известны еще на этапе её проектирования и называются аберрациями. Искажения, которые вносят электронные приёмники излучения, например ПЗС-матрицы, называются электронным шумом. Помехи затрудняет визуальный анализ изображения и его автоматическую обработку. Ослабление действия помех достигается фильтрацией. При фильтрации яркость (сигнал) каждой точки исходного изображения, искаженного помехой, заменяется некоторым другим значением яркости, которое признается в наименьшей степени искаженным помехой. Для выполнения фильтрации необходимо выработать принципы таких преобразований, которые основываются на том, что интенсивность изображения изменяется по пространственным координатам медленнее, чем функция помех. В других случаях, наоборот, признаком полезного сигнала являются резкие перепады яркости. В методах фильтрации при оценке реального сигнала в некоторой точке кадра принимают во внимание некоторое множество (окрестность) соседних точек, воспользовавшись определенной похожестью сигнала в этих точках. Понятие окрестности является достаточно условным. Окрестность может быть образована лишь ближайшими по кадру соседями, но могут быть окрестности, содержащие достаточно много и достаточно сильно удаленных точек кадра. В этом случае, степень влияния (вес) далеких и близких точек на решения, принимаемые фильтром в данной точке кадра, будет совершенно различной. Таким образом, идеология фильтрации основывается на рациональном использовании данных как из рабочей точки, так и из ее окрестности. При решении задач фильтрации используют вероятностные модели изображения и помехи, и применяют статистические критерии оптимальности. Это связано со случайным характером помехи и стремлением получить минимальное в среднем отличие результата обработки от идеального сигнала. Многообразие методов и алгоритмов фильтрации связано с большим разнообразием математических моделей сигналов и помех, а также различными критериями оптимальности. Пусть – значение яркости изображения – полезного сигнала на пересечении i-ой строки и j-го столбца, а наблюдаемое на входе фильтра изображение описывается моделью: Здесь – значение помехи в точке с координатами (i,j), f() – функция, описывающая взаимодействие сигнала и помехи, а I и J – число строк и столбцов в кадре соответственно.
Генерация шума
правитьДля исследования методов фильтрации или других целей можно воспользоваться функцией iplNoiseImage, которая позволяет сгенерировать шум и добавить его к изображению (зашумить). Эта функция имеет следующий прототип: IPLStatus iplNoiseImage(IplImage* image, const IplNoiseParam* noiseParam); где image – изображение, а noiseParam – параметры шума, которые создаются с помощью функции iplNoiseUniformInit (для шума распределенного равномерно) или iplNoiseGaussianInit (для шума с Гауссовым распределением): void iplNoiseUniformInit(IplINoiseParam* noiseParam, unsigned int seed, int low, int high); void iplNoiseGaussianInit(IplINoiseParam* noiseParam, unsigned int seed, int mean, int stDev); где noiseParam – указатель на структуру типа IplINoiseParam, в которую функция запишет параметры для генерации шума, seed – число для инициализации генератора случайных чисел. Для равномерного шума задаются аргументы low и high, которые определяют верхнюю и нижнюю границы диапазона равномерно распределенных значений. Для гауссового шума задаётся аргумент mean, который определяет среднее значение распределения Гаусса, а stDev – среднеквадратическое отклонение. Таким образом, процедура для зашумления изображения может быть реализована следующим образом: void NoiseImage{ // Задание параметров шума IplNoiseParam noiseParam; iplNoiseUniformInit(&noiseParam, 0, 100, 200); // Зашумление изображения iplNoiseImage(m_img, &noiseParam);}