• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-24
  • 语言: Matlab
  • 标签: 圆拟合  matlab  

资源简介

用于图像中圆拟合, 首先读取图像数据,然后二值化,二值化后用canny边缘检测算子检测边缘,把数据记录下了,运用最小二乘法

资源截图

代码片段和文件信息

%%基于最小二乘的圆拟合方法求激光光斑的中心
close all
clear all
clc
[fnamepname]=uigetfile(‘*.*‘);
pic=strcat(pnamefname);
I_original = imread(pic);
I_gray = rgb2gray(I_original);% 输入灰度图就不用该语句
figure(1)
imshow(I_original);

I_2data=im2bw(I_gray);% 把灰度图像(grayscale image)转换成二值图像
figure(2);imshow(I_2data);  % 画出二值化处理后的光斑图像
BW=edge(I_2data‘canny‘); % 利用canny算子对图像进行边缘提取 
figure(3);imshow(BW); % 画出边缘提取图像
%初始化
sumx=0; sumx2=0; sumx3=0; 
sumy=0; sumy2=0; sumy3=0; 
sumxy2=0; sumx2y=0; sumxy=0; 
num=0; 
[m n] = size(I_2data)
for i=1:m;
    for j=1:n;
        if BW(ij)==1; % 只取边缘点
            sumx=i+sumx;
            sumx2=i^2+sumx2;
            sumx3=i^3+sumx3;
            sumy=j+sumy;
            sumy2=j^2+sumy2;
            sumy3=

评论

共有 条评论