主要内容

灰度图像中的区域测量

这个例子展示了如何在灰度图像中测量物体的属性。为此,首先对灰度图像进行分割,得到目标的二值图像。然后,使用regionprops函数分析二值图像中每个目标对应的原始灰度像素值。

步骤1:创建合成图像

使用辅助函数,propsSynthesizeImage,以创建包含五个不同区域的灰度图像。

我= propsSynthesizeImage;imshow (I)标题(的合成图像

图中包含一个轴对象。标题为Synthetic Image的axis对象包含一个类型为Image的对象。

步骤2:创建二进制图像

将灰度图像分割为包含原始图像中的目标的二值图像。

Bw = I > 0;imshow (BW)标题(的二进制图像

图中包含一个轴对象。标题为Binary Image的axis对象包含一个Image类型的对象。

步骤3:利用灰度图像的像素值计算对象属性

regionprops函数支持可用于灰度金宝app图像的几个属性,包括“WeightedCentroid”“MeanIntensity”“MinIntensity”,“MaxIntensity”.这些属性使用对象的原始像素值进行计算。

例如,你可以用regionprops计算图像中物体的质心和加权质心。注意如何传入二进制图像(BW),包含您的对象和原始灰度图像()作为论据regionprops

s = regionprops (BW, {“重心”“WeightedCentroid”});

将加权质心位置与未加权质心位置进行比较,显示原始图像,然后使用持有情节函数,将质心叠加在图像上。

imshow (I)标题(“加权(红色)和未加权(蓝色)质心”);持有numObj =元素个数(年代);n = 1: numObj plot(s(k).WeightedCentroid(1), s(k).WeightedCentroid(2),的r *)图(s (k) .Centroid (1), s (k) .Centroid (2),“波”结束持有

图中包含一个轴对象。带有标题加权(红色)和未加权(蓝色)质心的轴对象包含11个类型为image, line的对象。

步骤4:计算基于自定义像素值的属性

你可以使用“PixelValues”属性以根据原始灰度图像的像素值执行自定义计算。的“PixelValues”属性返回包含区域中像素的灰度值的向量。

以计算每个区域的标准差为例。

s = regionprops (BW, {“重心”“PixelValues”的边界框(“大小)});imshow (I)标题(“地区标准差”)举行k = 1:numObj s(k)。StandardDeviation =性病(双(s (k) .PixelValues));文本(s (k) .Centroid (1), s (k) .Centroid (2),...sprintf (' % 2.1 f 's (k) .StandardDeviation),...“EdgeColor”“b”“颜色”“r”);结束持有

图中包含一个轴对象。标题为“区域标准差”的axis对象包含6个类型为图像、文本的对象。

这张图显示了叠加在图像中每个物体上的标准差测量值。您还可以通过其他方式查看结果,例如通过条形图显示按标签编号显示的标准偏差。

图酒吧(1:numObj, [s.StandardDeviation])包含(“区域标签数量”) ylabel (“标准差”

图中包含一个轴对象。axis对象包含一个bar类型的对象。

您可以使用图来确定如何对数据进行分区。例如,下面的代码识别标准偏差小于50的对象。

sStd = [s.StandardDeviation];lowStd = find(sStd < 50);imshow (I)标题('标准偏差< 50的对象')举行k = 1:length(lowStd) rectangle(“位置”s (lowStd (k))。BoundingBox,“EdgeColor”“y”);结束持有

图中包含一个轴对象。标题为Objects Having Standard Deviation < 50的axis对象包含2个类型为image, rectangle的对象。

另请参阅