СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Морфологическая обработка изображений

Категория: Информатика

Нажмите, чтобы узнать подробности

Морфологическая обработка изображений

Просмотр содержимого документа
«Морфологическая обработка изображений»

Федеральное государственное автономное образовательное учреждение

высшего образования


«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»

(НИУ «БелГУ»)


Институт инженерных технологий и естественных наук


Кафедра прикладной информатики и информационных технологий






Отчет по лабораторной работе №7

Тема работы: Морфологическая обработка изображений





студента очного отделения

3 курса 07001504 группы

Богомазова Александра Михайловича


Проверил:

Старший преподаватель

Болгова Евгения Витальевна
















БЕЛГОРОД 2017

Цель работы

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


imdilate













imerode




imopen



imclose



bwhitmiss


bwmorph



Центр массы


Размыкание реконструкцией



imfill



imclearborder

размыкание и замыкание



«верх шляпы»



гранулометрия

реконструкция


function pushbutton2_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global A;

global B;

C=[ 0 1 0; 1 1 1; 0 1 0 ];

B=imdilate(A,C);

[N1,N2]=size(B);

axes(handles.axes2)

imshow(B, []);

title('Результат преобразования');

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles)

global A;

global B;

se=strel('line', 11, 90);

B=imerode(A, se);

[N1,N2]=size(B);

axes(handles.axes2)

imshow(B, []);

title('Результат преобразования');

% --- Executes on button press in pushbutton4.

function pushbutton4_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton4 (see GCBO)

global A;

global B;

se=strel('line', 11, 90);

B=imopen(A, se);

[N1,N2]=size(B);

axes(handles.axes2)

imshow(B, []);

title('Результат преобразования');

% --- Executes on button press in pushbutton5.

function pushbutton5_Callback(hObject, eventdata, handles)

global A;

global B;

se=strel('line', 11, 90);

B=imopen(A, se);

B = imclose(B, se);

[N1,N2]=size(B);

axes(handles.axes2)

imshow(B, []);

title('Результат преобразования');

% --- Executes on button press in pushbutton6.

function pushbutton6_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton6 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global A;

global B;

B1 = [0 1 0; 1 1 1; 0 1 0];

B2 = [1 0 1; 0 0 0; 1 0 1];

B = bwhitmiss ( A , B1 , B2 );

[N1,N2]=size(B);

axes(handles.axes2)

imshow(B, []);

title('Результат преобразования');

% --- Executes on button press in pushbutton7.

function pushbutton7_Callback(hObject, eventdata, handles)

global B;

B = bwmorph ( A , 'thin' , Inf ) ;

B = bwmorph ( B , 'skel' , Inf ) ;

[N1,N2]=size(B);

axes(handles.axes2)

imshow(B, []);

title('Результат преобразования');

% --- Executes on button press in pushbutton8.

function pushbutton8_Callback(hObject, eventdata, handles)

global A;

global B;

B = A;

[ L , n ] = bwlabel ( B ) ;

axes(handles.axes2)

imshow ( B )

hold on

for k = 1: n

[ r , c ] = find ( L == k ) ;

rbar = mean ( r ) ;

cbar = mean ( c ) ;

plot ( cbar , rbar , 'Marker' , 'o' , 'MarkerEdgeColor' , 'k' , 'MarkerFaceColor' , 'k' , 'MarkerSize' , 10 )

plot ( cbar , rbar , 'Marker' , '*' , 'MarkerEdgeColor' , 'w' )

end



% --- Executes on button press in pushbutton9.

function pushbutton9_Callback(hObject, eventdata, handles)

global A;

global B;

B = imerode ( A , ones ( 51, 1 ) ) ;

B = imreconstruct (B, A) ;

[N1,N2]=size(B);

axes(handles.axes2)

imshow(B, []);

title('Результат преобразования');

% --- Executes on button press in pushbutton10.

function pushbutton10_Callback(hObject, eventdata, handles)

global A;

global B;

B = imfill ( A , 'holes' );

[N1,N2]=size(B);

axes(handles.axes2)

imshow(B, []);

title('Результат преобразования');

% --- Executes on button press in pushbutton11.

function pushbutton11_Callback(hObject, eventdata, handles)

global A;

global B;

B = imclearborder ( A , 8 );

[N1,N2]=size(B);

axes(handles.axes2)

imshow(B, []);

title('Результат преобразования');

% --- Executes on button press in pushbutton12.

function pushbutton12_Callback(hObject, eventdata, handles)

global A;

global B;

se = strel ( 'disk', 5 ) ;

A = imopen ( A , se ) ;

B = imclose ( B , se ) ;

[N1,N2]=size(B);

axes(handles.axes2)

imshow(B, []);

title('Результат преобразования');

% --- Executes on button press in pushbutton13.

function pushbutton13_Callback(hObject, eventdata, handles)

global A;

global B;

se = strel ( 'disk' , 10 ) ;

B = imopen ( A, se );

B = imsubtract ( imadd ( B , imtophat ( B , se ) ) , imtophat ( B , se ) ) ;

[N1,N2]=size(B);

axes(handles.axes2)

imshow(B, []);

title('Результат преобразования');

% --- Executes on button press in pushbutton14.

function pushbutton14_Callback(hObject, eventdata, handles)

global A;

sumpixels = zeros ( 1 , 36 ) ;

for k = 0:35

se = strel ( 'disk' , k ) ;

fo = imopen ( A , se ) ;

sumpixels ( k + 1 ) = sum ( fo (:) ) ;

end

axes(handles.axes2);

plot ( 0:35 , sumpixels ) , zlabel ( 'k' ) , ylabel ( 'Surface area' )

% --- Executes on button press in pushbutton15.

function pushbutton15_Callback(hObject, eventdata, handles)

global A;

global B;

f = A;

f_obr = imreconstruct ( imerode ( f , ones ( 1 , 71 ) ) , f ) ;

% f_o = imopen ( f , ones ( 1 , 71 ) ) ;

f_thr = imsubtract ( f , f_obr );

% f_th = imsubtract ( f , f_o );

g_obr = imreconstruct ( imerode ( f_thr , ones ( 1 , 11 ) ) , f_thr ) ;

g_obrd = imdilate ( g_obr , ones ( 1 , 21 ) ) ;

f2 = imreconstruct ( min ( g_obrd , f_thr ) , f_thr ) ;

B = f2;

[N1,N2]=size(B);

axes(handles.axes2)

imshow(B, []);

title('Результат преобразования');


12