📄 第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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -