function?[x,y]=imcenter(filename)
%提取中心坐標的程序
%y為二值圖像矩陣
%調用格式:[x,y]=imcenter(filename)
%例如:[x,y]=imcenter('1.bmp'),這裏的'1.bmp'是已存在的圖片
y=imread(filename);?%讀入圖片
if?~isbw(y)?%判斷是否是二值圖像,函數isbw有點過時,將來可能會被淘汰
y=im2bw(y);?%將圖像轉換成二值圖像
end
y=bwareaopen(y,10);?%去除幹擾點
se=strel('disk',2);?
y=imopen(y,se);?%進行開運算,以平滑輪廓
imshow(y)
[L,num]=bwlabel(y)?%連通區域標註
stat=?regionprops(L,?'Centroid','ConvexHull');
cent=stat(1).Centroid;%取中心
tn=stat(1).ConvexHull;%取邊界
x=cent(1,1);
y=cent(1,2);
h1=patch(cent(:,1),cent(:,2),'g');
set(h1,'FaceColor',?'none',?'EdgeColor',?'r',?'Marker',?'.');%畫中心
h?=?patch(tn(:,?1),?tn(:,?2),?'r');
set(h,?'FaceColor',?'none',?'EdgeColor',?'g',?'Marker',?'.');%畫邊界
end