MATLAB è Simulink íà ðóññêîì

https://hub.exponenta.ru/

Обработка сигналов и изображений\ Image Processing Toolbox

И.М.Журавель "Краткий курс теории обработки изображений"

В оглавление книги \ К предыдущему разделу \ К следующему разделу

Построение гистограмм

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

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

I=imread('pout.tif');
figure, imshow(I);
title('Исходное изображение')


Исходное изображение

Один из наиболее простых и распространенных способов построения гистограммы H изображения состоит в использовании функции imhist. Синтаксис использования функции imhist следующий:

H=imhist(InputImage,b),
где InputImage – исходное изображение; b – количество отсчетов.

Параметр b является необязательным. По умолчанию параметр b равен 256. Рассмотрим два примера построения гистограммы без указания и с указанием числа отсчетов.

%=======Построение гистограммы с помощью функции imhist без указания
%=======количества отсчетов
figure,imhist(I);
title('Гистограмма исходного изображения (использование функции imhist без указания числа отсчетов)')


Гистограмма исходного изображения (использование функции imhist с указанием числа отсчетов)

%=======Построение гистограммы с помощью функции imhist с указанием числа
%=======отсчетов t
t=64;
figure,imhist(I,t);
title('Гистограмма исходного изображения (использование функции imhist с указанием числа отсчетов)')


Гистограмма исходного изображения (использование функции imhist с указанием числа отсчетов

Конечно, функция imhist наиболее часто используется, но в системе Matlab существуют также другие средства, с помощью которых можно построить гистограмму изображения.

С помощью функции bar можно построить так называемую столбчатую диаграмму. Синтаксис использования этой функции следующий:

bar(horz,I,width),

где I – исходное изображение; horz – вектор приращений по горизонтальной шкале; width – параметр, управляющий толщиной столбиков гистограммы.

%Построение столбчатой гистограммы
h=imhist(I);
h1=h(1:5:256);
horz=1:5:256;
figure, bar(horz,h1);
title('Столбчатая гистограмма')
axis([0 255 0 2000]);
set(gca,'xtick',0:50:255)
set(gca,'ytick',0:200:2000)


Столбчатая гистограмма

Так называемая стеблевая гистограмма строится аналогично столбчатой гистограмме.

%=========Стеблевая гистограмма================================
h=imhist(I);
h1=h(1:5:256);
horz=1:5:256;
figure, stem(horz,h1,'fill');
title('Стеблевая гистограмма')
axis([0 255 0 2000]);
set(gca,'xtick',0:50:255)
set(gca,'ytick',0:200:2000)


Стеблевая гистограмма

Также гистограмму изображения можно построить с помощью функции plot. Эта функция строит график по точкам, соединяя их отрезками прямых линий.

%========Использование функции plot===========================
h=imhist(I);
figure, plot(h);
title('Использование функции plot для построения гистограммы')
axis([0 255 0 2000]);
set(gca,'xtick',0:50:255)
set(gca,'ytick',0:200:2000)


Использование функции plot для построения гистограммы

В приведенных нами примерах масштабирование осей координат на графиках производилось вручную. Однако это можно делать и автоматически с использованием следующих функций

ylim('auto')
xlim('auto')


%================ПРОГРАММА ПОСТРОЕНИЯ ГИСТОГРАММЫ ИЗОБРАЖЕНИЙ================ 
==================С ИСПОЛЬЗОВАНИЕМ РАЗЛИЧНЫХ ФУНКЦИЙ===========================
clear;
I=imread('pout.tif');
%=======Визуализация исходного изображения================
figure, imshow(I);
title('Исходное изображение')
 
%=======Построение гистограммы с помощью функции imhist без указания
%количества отсчетов
figure,imhist(I);
title('Гистограмма исходного изображения (использование функции imhist без указания числа отсчетов)')
 
%=======Построение гистограммы с помощью функции imhist с указанием числа отсчетов t
t=64;
figure,imhist(I,t);
title('Гистограмма исходного изображения (использование функции imhist с указанием числа отсчетов)')

%=======Столбчатая гистограмма==================
h=imhist(I);
h1=h(1:5:256);
horz=1:5:256;
figure, bar(horz,h1);
title('Столбчатая гистограмма')
axis([0 255 0 2000]);
set(gca,'xtick',0:50:255)
set(gca,'ytick',0:200:2000)
 
%=========Стеблевая гистограмма================================
h=imhist(I);
h1=h(1:5:256);
horz=1:5:256;
figure, stem(horz,h1,'fill');
title('Стеблевая гистограмма')
axis([0 255 0 2000]);
set(gca,'xtick',0:50:255)
set(gca,'ytick',0:200:2000)
 
%========Использование функции plot===========================
h=imhist(I);
figure, plot(h);
title('Использование функции plot для построения гистограммы')
axis([0 255 0 2000]);
set(gca,'xtick',0:50:255)
set(gca,'ytick',0:200:2000) 

В оглавление книги \ К предыдущему разделу \ К следующему разделу


Поиск по сайту:


Система Orphus