测量区域的灰度图像
这个例子展示了如何衡量一个灰度图像中对象的属性。为此,第一段的灰度图像得到一个二进制图像对象。然后,使用regionprops
函数来分析原始灰度像素值对应于二进制图像中的每个对象。
步骤1:创建合成图像
使用一个helper函数,propsSynthesizeImage
,创建一个包含五个不同区域的灰度图像。
我= propsSynthesizeImage;imshow (I)标题(的合成图像)
步骤2:创建一个二进制图像
段灰度图像通过创建一个包含原始图像中对象的二进制图像。
BW = > 0;imshow (BW)标题(的二进制图像)
步骤3:计算使用像素的灰度值图像对象属性
的regionprops
函数支持多种属性,万博1manbetx可用于灰度图像,包括“WeightedCentroid”
,“MeanIntensity”
,“MinIntensity”
,“MaxIntensity”
。这些对象的属性使用原始的像素值的计算。
例如,您可以使用regionprops
计算质心和加权质心图像中的对象。注意如何通过二进制图像(BW
)包含对象和原始灰度图像(我
)作为参数regionprops
。
s = regionprops (BW, {“重心”,“WeightedCentroid”});
比较加权质心位置与未加权质心位置,显示原始图像,然后使用持有
和情节
功能,重叠图像的质心。
imshow (I)标题(加权(红色)和未加权的(蓝色)质心的);持有在numObj =元素个数(年代);为k = 1: numObj情节(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 =找到(sStd < 50);imshow (I)标题(的对象有标准差< 50)举行在为k = 1:长度(lowStd)矩形(“位置”.BoundingBox, s (lowStd (k)),“EdgeColor”,“y”);结束持有从
另请参阅
regionprops
|regionprops3
|图像区域分析仪