Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

otchet_laba_5

.docx
Скачиваний:
0
Добавлен:
28.06.2018
Размер:
2.21 Mб
Скачать

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых»

(ВлГУ)

Кафедра БЭСТ

Лабораторная работа № 5

«Определение числа объектов на изображении»

по дисциплине:

«Цифровая обработка изображений»

Выполнил:

Студент группы БТС-114

Дачкина Н. А.

Проверил:

Аль-Хайдри Валид Ахмед

Владимир 2017 г.

Цель работы: изучить базовые методы обработки изображений, позволяющие производить подсчет объектов

Ход работы:

1. Загружаем исходное изображение

img = imread('bloodcells.jpg');

Рисунок 1 – Исходное изображение

2. Создаем функцию IM_Number_Objects, определение числа объектов на изображении

function [Xfit, Yfit]=IM_Number_Objects(img)

grayimg = rgb2gray(img); % преобразует исходное изображение в полутоновое

figure,imshow(grayimg)

Рисунок 2 – Полутоновое изображение

grayimg = imadjust(grayimg); % создает полутоновое изображение путем контрастирования исходного полутонового изображения.

figure,imshow(grayimg)

Рисунок 3 – Полутоновое изображение путем контрастирования исходного полутонового изображения.

bw = edge(grayimg,'canny', 0.15, 2);% выделениe границ на исходном полутоновом изображении

figure,imshow(bw)

Рисунок 4 – Выделение границ на полутоновом изображении

bw = imfill(bw,'holes');% заполняет отверстия на исходном бинарном изображении.

figure,imshow(bw)

Рисунок 5 – Заполнение отверстий на бинарном изображении

se = strel('disk',1); %создает плоские, дискообразные структурные элементы с R=1

bw = imopen(bw,se);% выполняет морфологическую операцию открытия полутонового или бинарного изображения bw с структурным элементом SE.

figure,imshow(bw)

Рисунок 6 – Плоские, дискообразные структурные элементы

[B,L] = bwboundaries(bw);% отслеживает наружные границы объекта на бинарном изображении BW.

stats = regionprops(L,'Centroid','EquivDiameter');%измеряет набор характеристик для каждой области, отмеченной в матрице меток L.

%'Centroid' - векторс размерностью 1ndims(L);центр масс области.

%'EquivDiameter'- скаляр; диаметр окружности, площадь которой эквивалентна площади рассматриваемой области.

figure, imshow(img)

Рисунок 7 – Выделение границ

hold on

for k = 1:length(B)% если длина от 1 до В, то

boundary = B{k};% граница равна В(к)

radius = stats(k).EquivDiameter/2; % нахождение радиуса

xc = stats(k).Centroid(1); % нахождение координаты центра по х

yc = stats(k).Centroid(2);% нахождение координаты центра по у

theta = 0:0.01:2*pi;% создаем массив

Xfit = radius*cos(theta) + xc;

Yfit = radius*sin(theta) + yc;

plot(Xfit, Yfit, 'blue');

text(boundary(1,2)-15,boundary(1,1)+15, num2str(radius,3),'Color','k', 'FontSize',8);

end

end

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]