基于matlab实现定位激光光斑中心的代码,给出三种方法
时间: 2023-05-28 20:07:41 浏览: 296
方法一:
%读入激光光斑图像
img = imread('laser_spot.jpg');
%转换为灰度图像
gray_img = rgb2gray(img);
%阈值分割
bw_img = gray_img > 100;
%计算质心
[row, col] = find(bw_img);
center = [mean(col), mean(row)];
%显示结果
imshow(img);
hold on;
plot(center(1), center(2), 'r+', 'MarkerSize', 20, 'LineWidth', 2);
方法二:
%读入激光光斑图像
img = imread('laser_spot.jpg');
%转换为灰度图像
gray_img = rgb2gray(img);
%阈值分割
bw_img = gray_img > 100;
%计算质心
stats = regionprops(bw_img, 'Centroid');
center = stats.Centroid;
%显示结果
imshow(img);
hold on;
plot(center(1), center(2), 'r+', 'MarkerSize', 20, 'LineWidth', 2);
方法三:
%读入激光光斑图像
img = imread('laser_spot.jpg');
%转换为灰度图像
gray_img = rgb2gray(img);
%阈值分割
bw_img = gray_img > 100;
%使用边缘检测提取轮廓
[B, ~] = bwboundaries(bw_img, 'noholes');
%计算轮廓的质心
center = mean(B{1});
%显示结果
imshow(img);
hold on;
plot(center(2), center(1), 'r+', 'MarkerSize', 20, 'LineWidth', 2);
相关推荐


















