www.gusucode.com > 《matlab图像处理与界面编程宝典》秦襄培 编著,每章的MATLAB源代码程序 > 第24章/代码24-4.txt

    
BW = imread('blobs.png');                     % 读入图像
[B,L,N,A] = bwboundaries(BW);                 % 描绘边界
figure, imshow(BW); hold on;                  % 显示原始图像,并进行在上面绘图
colors=['b' 'g' 'r' 'c' 'm' 'y'];             % 色彩
for k=1:length(B)
    boundary = B{k};
    cidx = mod(k,length(colors))+1;
    plot(boundary(:,2), boundary(:,1),...
         colors(cidx),'LineWidth',2);
    %文字的位置进行了随机处理,以便得到较好的视觉效果
    rndRow = ceil(length(boundary)/(mod(rand*k,7)+1));
    col = boundary(rndRow,2); row = boundary(rndRow,1);
    h = text(col+1, row-1, num2str(L(row,col)));
    set(h,'Color',colors(cidx), 'FontSize',14,'FontWeight','bold');
  end
figure; spy(A);                             % 显示邻接矩阵