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

pmi432 / LR07 / 2read / из Журавеля / 13. Идентификация округлых предметов

.pdf
Скачиваний:
70
Добавлен:
18.03.2015
Размер:
301.42 Кб
Скачать

Image Processing Toolbox. . . .

. 1

MATLAB.Exponenta

 

Семинары

Тренинги

Лицензирование

Материалы

 

Подписка

 

Форум

Регистрация

Matlab

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Toolboxes

 

 

 

 

Запрос цены

 

Пробная версия

 

Запрос демонстрации

 

Simulink

 

 

 

 

 

 

 

 

 

 

 

Blocksets

 

 

 

 

 

 

 

 

 

Вход

 

 

 

 

 

 

 

 

 

 

Полезное

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

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

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

Содержание

Шаг 1: Считывание изображения.

Шаг 2: Пороговая обработка изображения.

Шаг 3: Устранение шума.

Шаг 4: Поиск границ объектов изображения. Шаг 5: Определение округлости объектов.

Шаг 1: Считывание изображения.

Считаем данные из pills_etc.png. RGB=imread('pillsetc.png'); imshow(RGB);

Шаг 2: Пороговая обработка изображения.

Преобразуем исследуемое изображение в бинарное и таким образом подготовим его для применения функции bwboundaries, которая реализует выделение границ объектов.

I=rgb2gray(RGB);

threshold=graythresh(I); bw=im2bw(I, threshold); imshow(bw)

http://matlab.exponenta.ru/imageprocess/book2/43.php

08.11.2012 22:44:33

Image Processing Toolbox. . . .

. 2

Шаг 3: Устранение шума.

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

%удаление всех объектов, содержащих меньше чем 30 пикселей bw=bwareaopen(bw,30);

%заполнение пустот

se=strel('disk', 2); bw=imclose(bw, se); bw=imfill(bw,'holes'); imshow(bw)

Шаг 4: Поиск границ объектов изображения.

При решении этого вопроса будем рассматривать только внешние границы.

Опция 'noholes' приводит к ускорению обработки с помощью функции bwboundaries и повышает достоверность выделения границ объектов изображения.

[B, L]=bwboundaries(bw, 'noholes');

% отображение матрицы меток и извлечение границ imshow(label2rgb(L, @jet, [.5 .5 .5]))

hold on

for k=1:length(B) boundary=B{k};

plot(boundary(:, 2), boundary(:, 1), 'w', 'LineWidth', 2) end

http://matlab.exponenta.ru/imageprocess/book2/43.php

08.11.2012 22:44:33

Image Processing Toolbox. . . .

. 3

Шаг 5: Определение округлости объектов.

Измерим площадь каждого объекта и его периметр. Эти данные будут использованы при вычислении характеристики округлостей объектов:

metric=4*pi*area/perimeter^2.

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

Используем функцию regionprops для получения измерений площади для всех объектов. Отметим, что матрица меток, возвращаемая функцией bwboundaries, может повторно использоваться в функции regionprops.

stats=regionprops(L, 'Area', 'Centroid'); threshold=0.94;

% окружность границ for k=1:length(B)

%получение координат границ (X, Y), соответствующих метке 'k' boundary=B{k};

%вычисление измерений на основе периметра объектов

delta_sq=diff(boundary).^2; perimeter=sum(sqrt(sum(delta_sq, 2)));

%получение вычисленной площади, соответствующей метке 'k' area=stats(k).Area;

%вычисление характеристики округлости metric metric=4*pi*area/perimeter^2;

%отображение результатов

metric_string=sprintf('%2.2f', metric); % маркирование объектов

if metric>threshold centroid=stats(k).Centroid; plot(centroid(1), centroid(2), 'ko'); end

text(boundary(1, 2)-35, boundary(1, 1)+13, metric_string,'Color', 'y',...

'FontSize', 14, 'FontWeight', 'bold');

end

title(['Metrics closer to 1 indicate that ',...

'the object is approximately round']);

http://matlab.exponenta.ru/imageprocess/book2/43.php

08.11.2012 22:44:33

Image Processing Toolbox. . . .

. 4

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

I Всероссийская научная конференция «Проектирование научных и инженерных приложений в среде MATLAB» (май 2002 г.) II Всероссийская научная конференция «Проектирование научных и инженерных приложений в среде MATLAB» (май 2004 г.)

III Всероссийская научная конференция «Проектирование научных и инженерных приложений в среде MATLAB» (октябрь 2007 г.) IV Всероссийская научная конференция «Проектирование научных и инженерных приложений в среде MATLAB» (май 2009 г.)

V Всероссийская научная конференция «Проектирование научных и инженерных приложений в среде MATLAB» (май 2011 г.)

На первую страницу \ Сотрудничество \ MathWorks \ Softline \ Контакты \ Вакансии

Информация на сайте была обновлена 21.04.12

Copyright 2001–2012 Softline Co

Наши баннеры

 

подарки – подарочные сертификаты

http://matlab.exponenta.ru/imageprocess/book2/43.php

08.11.2012 22:44:33