當前位置:編程學習大全網 - 編程軟體 - 求助matlab編程:給出壹個圖片,求光帶的能量中心的橫縱坐標?

求助matlab編程:給出壹個圖片,求光帶的能量中心的橫縱坐標?

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

  • 上一篇:在MSP單片機得頭文件中的 #define BIT0 0X0001是什麽意思 還有就是在MSP編程中和51相差的太多
  • 下一篇:編程 軟件制作 和 遊戲開發制作 必須用 英文嗎?
  • copyright 2024編程學習大全網