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

    
I = ipexpropsSynthesizeImage;
imshow(I)
title('Synthetic Image') % 
BW = I > 0;
L = bwlabel(BW);
imshow(label2rgb(L))
title('Label Matrix') % 
s = regionprops(L, I, {'Centroid','WeightedCentroid'});
imshow(I)                                               % 显示图像
title(sprintf('Weighted Centroid (red) and %s', ...             % 设定标题
    'Unweighted Centroid Locations (blue)'));
hold on                                                 % 继续绘制图像
numObj = numel(s);                                      % 目标对象数目
for k = 1 : numObj                                       % 通过循环对每个目标对象进行标记
    plot(s(k).WeightedCentroid(1), s(k).WeightedCentroid(2), 'r*');
    plot(s(k).Centroid(1), s(k).Centroid(2), 'bo');
end
hold off                                                % 结束绘制
s = regionprops(L, I, {'Centroid','PixelValues','BoundingBox'});  % 图像区域属性     
imshow(I);                                                  % 显示图像
title('Standard Deviation of Regions');                           % 设定标题
hold on                                                     % 继续绘制图像
for k = 1 : numObj                                      % 通过循环计算每个区域的标准偏差
    s(k).StandardDeviation = std(double(s(k).PixelValues));   
    text(s(k).Centroid(1),s(k).Centroid(2), ...
        sprintf('%2.1f', s(k).StandardDeviation), ...
        'EdgeColor','b','Color','g');
end
hold off                                                     % 结束绘制
figure                                           % 创建新的图形窗口
bar(1:numObj,[s.StandardDeviation]);              % 条形图绘制
xlabel('Region Label Number');                    % x轴标签
ylabel('Standard Deviation');                      % y轴标签
sStd = [s.StandardDeviation];
lowStd = find(sStd < 50);
% find函数在这里使用逻辑表达式确定数据,这里是找到数组sStd中小于50的元素,放入新数组。
imshow(I);
title('Objects Having Standard Deviation < 50');
hold on;
for k = 1 : length(lowStd) %设置循环次数为数组lowStd的元素的个数
    rectangle('Position', s(lowStd(k)).BoundingBox, ...% ...用于程序代码转行
        'EdgeColor','y');
end
hold off;