Измерение углов пересечения

Часто в машинном зрении применяются автоматические измерения различных геометрических параметров с применением технологии захвата и обработки изображений. Измерение угла и определение точки пересечения двух элементов некоторой конструкции выполняется с использованием функции bwtraceboundary, которая реализует также автоматическое отслеживание границ.

Содержание· Шаг 1: Считывание изображения.· Шаг 2: Определение области интереса.· Шаг 3: Пороговая обработка изображения.· Шаг 4: Поиск начальных точек каждой границы.· Шаг 5: Отслеживание границ.· Шаг 6: Подгонка линий границ.· Шаг 7: Определение угла пересечения.· Шаг 8: Поиск точки пересечения.· Шаг 9: Отображение результатов.Шаг 1: Считывание изображения. Считаем изображение из графического файла gantrycrane.jpg и определим область интереса при решении этой задачи. Это изображение портала подъемного крана. RGB=imread('gantrycrane.png');imshow(RGB);text(size(RGB, 2), size(RGB, 1)+15, 'Image courtesy of Jeff Mather', ... 'FontSize', 7, 'HorizontalAlignment', 'right');line([300 328], [85 103], 'color', [1 1 0]);line([268 255], [85 140], 'color', [1 1 0]);text(150, 72, 'Измерение углов', 'Color', 'y', ... 'FontWeight', 'bold');

Измерение углов пересечения - student2.ru

Шаг 2: Определение области интереса. Вырежем изображение, содержащее только те элементы конструкции крана, угол между которыми мы хотим определить. Далее необходимо определить контур двух металлических конструкций.

% Координаты области интереса можно задать вручную,% далее отображаем нужную область с помощью imviewstart_row=34;start_col=208;cropRGB=RGB(start_row:163, start_col:400, :);imshow(cropRGB)offsetX=start_col-1;offsetY=start_row-1;

Измерение углов пересечения - student2.ru

Шаг 3: Пороговая обработка изображения. Преобразуем исследуемое изображение в бинарное. Далее эти бинарные данные будут использованы для получения координат границ с помощью функции bwtraceboundary.

I=rgb2gray(cropRGB);threshold=graythresh(I);BW=im2bw(I, threshold);BW=~BW; % дополнение изображения (объект интереса должен быть белым)imshow(BW)

Измерение углов пересечения - student2.ru

Шаг 4: Поиск начальных точек каждой границы. Функция bwtraceboundary требует описания определенных точек контура. Эти точки являются стартовыми при отслеживании границ объектов.Функция bwtraceboundary также требует описание исследуемого изображения, представленное в специальной форме. dim=size(BW);% горизонтальное направлениеcol1=4;row1=min(find(BW(:, col1)));% угловое направлениеrow2=12;col2=min(find(BW(row2, :))); Шаг 5: Отслеживание границ.

Функция bwtraceboundary позволяет реализовать также процедуру определения координат граничных точек. Для увеличения достоверности вычисленных углов и точек при расчетах нужно использовать максимальное число исследуемых граничных точек. Это число определяется экспериментально. При проведении процедуры определения координат границ также необходимо указывать направление отслеживания.

boundary1=bwtraceboundary(BW, [row1, col1], 'N', 8, 70);% установим направление отслеживания - против часовой стрелки, сверху внизboundary2=bwtraceboundary(BW, [row2, col2], 'E', 8, 90,'counter');imshow(RGB); hold on;% отображение результатов на исходном изображенииplot(offsetX+boundary1(:, 2), offsetY+boundary1(:, 1), 'g', 'LineWidth', 2);plot(offsetX+boundary2(:, 2), offsetY+boundary2(:, 1), 'g', 'LineWidth', 2);

Измерение углов пересечения - student2.ru

Наши рекомендации