資源簡介
用于圖像中圓擬合, 首先讀取圖像數據,然后二值化,二值化后用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=
評論
共有 條評論