这个例子展示了如何在灰度图像中测量物体的属性。为此,首先对灰度图像进行分割,得到目标的二值图像。然后,使用regionprops
函数分析二值图像中每个目标对应的原始灰度像素值。
使用辅助函数,propsSynthesizeImage
,以创建包含五个不同区域的灰度图像。
我= propsSynthesizeImage;imshow (I)标题(的合成图像)
将灰度图像分割为包含原始图像中的目标的二值图像。
Bw = I > 0;imshow (BW)标题(的二进制图像)
的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),“波”)结束持有从
你可以使用“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”);结束持有从
这张图显示了叠加在图像中每个物体上的标准差测量值。您还可以通过其他方式查看结果,例如通过条形图显示按标签编号显示的标准偏差。
图酒吧(1:numObj, [s.StandardDeviation])包含(“区域标签数量”) ylabel (“标准差”)
您可以使用图来确定如何对数据进行分区。例如,下面的代码识别标准偏差小于50的对象。
sStd = [s.StandardDeviation];lowStd = find(sStd < 50);imshow (I)标题('标准偏差< 50的对象')举行在为k = 1:length(lowStd) rectangle(“位置”s (lowStd (k))。BoundingBox,“EdgeColor”,“y”);结束持有从