
pmi432 / LR07 / 2read / из Журавеля / 13. Идентификация округлых предметов
.pdf
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 |