Обработка изображений в Matlab: Методические рекомендации по выполнению лабораторной работы, страница 4

Изменение  контраста изображения.   Максимальное значение контраста свойственно только черно-белым изображениям. Это объясняется наличием у них четких границ, т.е. резким перепадом яркостей. Однако большинство реалистических полутоновых изображений не имеет таких резких границ объектов, поэтому контраст таких изображений низкий.

Для линейного преобразования контраста используется линейное поэлементное преобразование вида , параметры которого  a и b определяются минимальным 

ymin   и максимальным  ymax значениями  выходной яркости.

 При этом часто используется гистограмма исходного изображения. Гистограмма дает количество точек в изображении, имеющих определенную яркость.  Преобразование, в котором гистограмма выходного изображения имеет равномерное распределение, называется эквализацией (выравниванием) контраста изображения.  Для получения гистограммы изображения в Matlab служит функция umhist(), для выравнивания гистограммы – функция histeq().  Справочные сведения по функциям можно получить в Help Matlab.

               Геометрические преобразования изображений.   В Matlab для изменения размеров изображения используется функция imresize(), для увеличения изображения необходимо, чтобы коэффициент увеличения был больше 1. Для уменьшения изображения нужно, чтобы коэффициент увеличения находился в диапазоне между 0 и 1.

Для поворота изображений используется функция imrotate(). При её использовании функции нужно указать два основных аргумента: изображение, которое нужно повернуть и угол поворота.

               Арифметические операции с изображениями.    Арифметические операции с данными изображений включают стандартные операции, такие как суммирование, вычитание, умножение и деление. Арифметические операции широко используются при обработке изображений, в частности, при предварительной обработке и многих других случаях. Например, вычитание изображений используется при определении различий между двумя или несколькими изображениями одной и той же сцены или объекта.
            Для проведения арифметических вычислений над данными изображений можно использовать арифметические операторы системы MATLAB, т.е. сложение, вычитание, умножение, деление.
            Фильтрация изображений.   Изображения, зарегистрированные  оптико –  электронными системами, искажаются различными помехами и шумами, затрудняющими восприятие и анализ изображений. Ослабление действия помех и шумов может быть достигнуто с помощью фильтрации изображений.  При фильтрации яркость каждой точки исходного изображения  заменяется другим значением, которое меньше искажено помехами определенного типа. При этом значение сигнала в той или иной точке кадра определяется на основе значений яркости в некоторой окрестности соседних точек кадра.

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

 При линейной  фильтрации выходной сигнал (изображение) определяется как двумерная дискретная свертка, вычисляемая в виде линейной  комбинации входного сигнала (изображения) x и ядра фильтра h

.

        В этом выражении    y(i,j)  - результат фильтрации в точке изображения с координатами (i,j),  S – множество точек из окрестности рассматриваемой точки (i,j), h(m,n) – двумерная импульсная характеристика фильтра.  Импульсная характеристика h(m,n) - отклик фильтра на единичный импульс, представляет собой набор весовых коэффициентов, симметрично окружающих рабочую точку кадра изображения. Распространенным видом окрестности является квадрат размером 3 на 3 элемента с рабочим элементом в центре. Различные фильтры этого вида отличаются значениями коэффициентов h(m,n)

  В  Matlab для формирования двумерного фильтра с импульсной характеристикой  может быть использована функция H = FSPECIAL(TYPE)  с набором различных значений TYPE.   В частности, значение   TYPE = 'average' дает усредняющий фильтр, значение 'gaussian' – гауссовский фильтр нижних частот и т.д.

 Функция H = FSPECIAL('average',HSIZE)   реализует усредняющий фильтр  H размером  HSIZE.    Усредняющий фильтр используется, например, для удаления зернистости на изображениях.

Функция  Y = FILTER2(B,X)  выполняет двумерную фильтрацию изображения X фильтром с импульсной характеристикой B.    В частности, Y =FILTER2(fspecial('average',3),X)  осуществляет двумерную усредняющую фильтрацию фильтром с импульсной характеристикой в виде квадрата 3x3 элемента.

            Аналогичное назначение  имеет функция IMFILTER().

Для обработки изображений, заключающейся  в выделении границ объектов, удалении белых и черных точек (импульсные помехи) используется нелинейная фильтрация. Частным случаем такой фильтрации является медианная фильтрация.  Смысл медианной обработки состоит в том, что последовательность {yi , i=1,2,…,n} упорядочивается по возрастанию и определяется её медиана, т.е. элемент, занимающий центральное положение в упорядоченной последовательности. Это число и является результатом медианной фильтрации для текущей точки кадра изображения.

В Matlab функция B = MEDFILT2(A,[M N]) выполняет медианную фильтрацию  изображения   A. При этом каждый выходной элемент представляет собой  медианное значение   M  х N  пикселов, окружающих рассматриваемый элемент изображения.