灰度质心法绘出带方向的标注圆

发布时间 2023-10-11 10:06:33作者: WWHf

灰度质心法绘出带方向的标注圆

在给出特征点坐标及领域旋转描述后,在对应位置画圆,并根据旋转信息画出有方向的半径效果如下

20231010222663

clc
clear all
close all
%% 初始化参数
dog = imread("kobi.png");
% 灰度化
dogGray = rgb2gray(dog);
% 角点检测
points = detectHarrisFeatures(dogGray)
% 显示图像
imshow(dog)
% 保持
hold on
% 循环绘制圆形及带方向的半径
for i = 1:points.Count
       %不是在圆形绘制,在圆的左上角绘制,所以需要减去半径(20为直径)
        rectangle('Position', [int16(points.Location(i , 1)) - 10, int16(points.Location(i , 2)) - 10, 20 ,20], 'Curvature', [1 1],'EdgeColor', 'g','LineWidth',2);
        %绘制原点到指定边缘的半径线段
        x1 = int16(points.Location(i,1));
        y1 = int16(points.Location(i,2));
        x2 = int16(points.Location(i,1)) + int16 (10* cos( points.Metric(i) * 10e4  ) );  
        y2 = int16(points.Location(i,2)) + int16 ( 10* sin( points.Metric(i) * 10e4  ) );  
       plot([x1 x2], [y1 y2], 'y','LineWidth',2); % 在图像上绘制线  
end
hold off

202310102226749