
- •Часть 1: Пакет matlab
- •1. Начальные сведения о математическом пакете matlab
- •1.2. Редактор командной строки
- •2. Основные конструкции matlab
- •2.1. Форматы представления чисел и типы данных, используемых при обработке изображений
- •2.2. Массивы.
- •2.3. Операторы
- •2.3.1. Операции с числами
- •2.3.2 Операции с матрицами
- •2.3.3. Операторы сравнения для массивов
- •2.3.4. Логические операторы
- •2.4. Символьные вычисления
- •3. Основные команды для цифровой обработки изображений
- •3.1. Цифровое представление изображения и математическая модель цвета.
- •3.2. Цифровое представление изображения в matlab
- •Бинарные изображения
- •3.3.5. Поворот изображения
- •4. Программирование в matlab
- •4.1. Внешние текстовые файлы
- •4.2. Условный оператор и оператор цикла
- •4.3. Работа с m-файлами
- •4.4. Пример m-файла. Умножение изображений
- •5. Визуализация результатов вычислений
- •5.1. Команда Plot
- •5.2. Настройка параметров графического вывода команды plot
- •5.6. Отображение радиус – векторов
- •5.7. Построение узлов разбиения прямоугольной области.
- •6. Статистические функции обработки изображений
- •6.1. Определение rgb значений пиксела
- •6.2. Вычисление среднего значения элементов матрицы
- •6.3. Вычисление среднеквадратичного отклонения элементов матрицы
- •6.4. Выделение подобластей изображения
- •6.5. Построение гистограммы интенсивности цветовых компонентов
- •6.6. Применение команды hist для анализа текстуры дорожного покрытия
- •7. Управление параметрами изображений
- •7.1. Выравнивание гистограммы (эквализация)
- •7.2. Управление яркостью (Вета – коррекция)
- •7.3. Управление контрастностью (Гамма-коррекция)
- •8. Фильтрация изображений
- •Принципы фильтрации
- •8.2 Функции фильтрации
- •8.3. Фильтр Гаусса.
- •8.4.Фильтр Собеля
- •8.5. Фильтр Превитта.
- •8.6. Вч фильтр Лапласа.
- •8.7.Фильтр Лапласа-Гаусса.
- •8.8. Усредняющий нч фильтр.
- •8.9. Фильтр повышения резкости.
- •9. Выделение контуров объектов
- •10. Пример обработки изображения для анализа качества дорожного покрытия
- •Литература
6.5. Построение гистограммы интенсивности цветовых компонентов
Функция imhist в текущем окне строит гистограмму интенсивности цветовых компонентов изображения.
imhist (I, n)
imhist (BW, n)
imhist (X, map), где I, BW, X – соответственно массивы полутонового, бинарного и индексированного изображений; map – палитра изображения X; n – количество столбцов гистограммы. Значение n при вызове функции можно не указывать, при этом будут использованы значения по умолчанию: n=256 для полутонового изображения, n=2 для бинарного изображения.
Замечание. Так как команда обрабатывает только одну матрицу. То ее нельзя применить непосредственно к изображению в формате RGB. Требуется преобразование в один из перечисленных форматов:
Пример 6.7. Найти гистограмму полного изображения на рис.5 и для подобласти, содержащей дефект поверхности.
>>D_small = imread(‘img’, ‘jpg’);
% Чтение изображения из файла
>>D_small_grey=rgb2gray(D_small);
% Преобразование исходного изображения в полутоновое
>>subplot (1,2,1), subimage(D_small_gray);
% Построение гистограммы яркостей и вывод ее на экран
>>subplot (1,2,2), imhist(D_small_gray);
Результат:
Рис.5. Гистограмма полного изображения
Рис.6. Гистограмма области изображения
6.6. Применение команды hist для анализа текстуры дорожного покрытия
Вид гистограммы характеризует текстуру примерно однородной области изображения. На Рис.6 показаны фотографии участков дорожного покрытия с соответствующими гистограммами.
Рис.7. Гистограммы полутонового изображения дорожного полотна (фото с расстояния 20 см) и их гистограммы
7. Управление параметрами изображений
7.1. Выравнивание гистограммы (эквализация)
Функция histeq улучшает контраст изображения с помощью преобразования значений пикселов исходного изображения таким образом, чтобы гистограмма яркостей пикселов результирующего изображения приблизительно соответствовала некоторой предопределенной гистограмме. В результате её применения диапазон значений интенсивностей растягивается на весь отрезок возможных значений. Таким образом, визуально светлые пикселы становятся ещё более светлыми, а темные – более темными. Аналогично команде hist, histeq применима только к чёрно-белому, полутоновому и индексированному изображениям.
Функция Id=histeq(Im, n) преобразует исходное полутоновое изображение Im таким образом, чтобы результирующее полутоновое изображение Id имело гистограмму яркостей пикселов, близкую к равномерной. Равномерная гистограмма hgram создается из n столбцов. Чем меньше n по сравнению с количеством градаций яркости в изображении Im, тем более равномерной получается гистограмма яркостей пикселов результирующего изображения. По умолчанию значение n равно 64, и данный параметр можно не указывать при вызове функции. Если используется изображение в индексированном формате, то команда histeq имеет вид: histeq(X, map, hgram).
Пример 7.1. Применить команду histeq к фотографии дорожного полотна на рис. 1.
>> Pic='C:\road.JPG';
>> I=imread(Pic);
% чтение исходного изображения и вывод его на экран.
>> imshow(I);
>> Is=histeq(I);
% выравнивание гистограммы яркостей исходного
% полутонового изображения
>> subplot(1,2,1), imshow(I);
% вывод исходного и полученного
>> subplot(1,2,2), imshow(Is);
% изображения в одно окно
>> subplot(1,2,1), imhist(I);
% вывод гистограммы яркостей исходного
>> subplot(1,2,2), imhist(Is);
% и полученного изображения в одно окно
Результат:
Рис.1. Изображение и соответствующая гистограмма слева – исходное, справа – после выполнения функции histeq
Пример 7.2. Использовать функцию histeq для получения гистограммы Рис.2, где текстура неразличима. Применить histeq:
Рис.2. Гистограмма изображения с неразличимой текстурой
Изменение интенсивности не заполняет весь отрезок от 0 до 250, что говорит о недостаточном контрасте изображения. Контрастность можно повысить одной из 3-х процедур histeq, imadjust и adapthisteq.
>> I2 = histeq(X);
>> figure, imshow(I2)
>> figure, imhist(I2)
Рис.3. Изображение и его гистограмма
Команда imwrite записывает изображение на диск в одном из поддерживаемых форматов.
imwrite(A,filename,fmt), где А – изображение, filename – название под которым изображение будет записано на диск, fmt – формат записи.
Пример 7.3. Записать изображение в графический файл и просмотреть информацию о файле.
>> imwrite (I2, 'F:\Grafika\111','jpg');
% Запись файла на диск
>> imfinfo('F:\Grafika\111','jpg')
% Просмотр информации о файле:
Filename: 'F:\Grafika\111'
FileModDate: '14-Mar-2007 11:38:32'
FileSize: 11708
Format: 'jpg'
FormatVersion: ''
Width: 154
Height: 131
BitDepth: 8
ColorType: 'grayscale'
FormatSignature: ''
NumberOfSamples: 1
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {}