|
|
||||||||||||||||||||||||||||||||
Вход |
Раздел "Обработка сигналов и изображений\Image Processing Toolbox"
И.М.Журавель "Краткий курс теории обработки изображений" В оглавление \ К следующему разделу \ К предыдущему разделу Измерение радиуса части мотка ленты Рассмотрим задачу определения радиуса круглого объекта. В качестве примера возьмем катушку ленты. Решение задачи будет усложняться тем, что на изображении представлено только часть исследуемого объекта. При решении этой задачи будем использовать функцию bwtraceboundary. Содержание
Шаг 1: Считывание изображения. Считаем изображение из файла tape.png. RGB=imread('tape.png'); imshow(RGB); text(15,15,'Измерение радиуса',... 'FontWeight','bold','Color','y'); Шаг 2: Пороговая обработка изображения. Преобразуем изображение в бинарное для последующего получения координат границ с помощью функции bwtraceboundary. Шаг 3: Определение положения начальной точки границы объекта. Шаг 5: Подгонка окружности на выделенные границы. Отобразим основное уравнение окружности: (x-xc)^2+(y-yc)^2=radius^2, где (xc, yc) - центр окружности. Это же уравнение можно представить в другом виде через параметры a, b, c x^2+y^2+a*x+b*y+c=0, где a=-2*xc, b=-2*yc, c=xc^2+yc^2-radius^2 Параметры a, b, c нужны для вычисления радиуса. x=contour(:, 2); y=contour(:, 1); % при вычислении радиуса будет % использоваться метод наименьших квадратов abc=[x y ones(length(x), 1)]\[-(x.^2+y.^2)]; a=abc(1); b=abc(2); c=abc(3); % вычислим положение центра и радиус xc=-a/2; yc=-b/2; radius=sqrt((xc^2+yc^2)-c) % отобразим вычисленный центр plot(xc, yc, 'yx', 'LineWidth', 2); % отобразим полную окружность theta=0:0.01:2*pi; % используем параметрическое представление % окружности для получения координат точек Xfit=radius*cos(theta)+xc; Yfit=radius*sin(theta)+yc; plot(Xfit, Yfit); message=sprintf('Вычисленный радиус равен %2.3f пикселей', radius); text(15, 15, message, 'Color', 'y', 'FontWeight', 'bold'); radius= 80.7567 В работе приведен пример решения задачи определения радиуса окружности мотка ленты. Следует отметить, что представленная задача находит свое применение в реальных системах управления различными автоматизированными технологическими процессами. Такое внедрение компьютерных технологий приводит к повышению эффективности производства. Приведенные выше подходы также нашли свое применение в различных системах дистанционного контроля. Однако точность измерений во многом зависит от качества используемой аппаратуры. |
Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
|
||
На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro | ||
E-mail: | ||
Информация на сайте была обновлена 11.05.2004 |
Copyright 2001-2004 SoftLine Co Наши баннеры |