主要内容

雪花的粒度

这个例子展示了如何使用粒度测量法来计算雪花在图像中的大小分布。粒度测定法在不明确分割(检测)每个对象的情况下确定图像中物体的大小分布。

读图像

阅读'snowflakes.png'图像,这是雪花的照片。

我= imread ('snowflakes.png');imshow(我)

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

增强对比

您的第一步是最大化图像中的强度对比度。你可以使用这个adapthisteq函数,该函数执行对比度限制的自适应直方图均衡化。重新调整图像强度使用imadjust函数,以填充数据类型的整个动态范围。

Clahei = Adapthisteq(我,“NumTiles”10 [10]);claheI = imadjust (claheI);imshow (claheI)

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

确定增强图像的强度表面积分布

粒度测定法估计雪花的强度表面积分布作为大小的函数。粒度测量法将图像物体比作石头,通过不断增大的筛选来确定其大小,并在每次经过后收集剩下的东西。对图像对象进行筛选,方法是使用尺寸递增的结构元素打开图像,并在每次打开后计算剩余的强度表面积(图像中像素值的总和)。

选择一个计数器限制,以便当您增加结构元素的尺寸时,强度表面积趋于零。出于显示目的,将表面积数组中的第一个条目保留为空。

radius_range =高宾街;intensity_area = 0(大小(radius_range));counter = radius_range remain = imopen(clhei, strel(“磁盘”计数器));Intensity_area (counter + 1) = sum(remain(:)); / /保留结束图绘制(intensity_area,的m - *网格)标题(“打开图像中的像素值与半径的总和”)xlabel(“打开半径(像素)”)ylabel(“打开对象的像素值之和(强度)”

图中包含一个轴对象。标题为“打开图像中像素值与半径之和”的轴对象包含一个类型为line的对象。

计算分布的一阶导数

两个连续开口之间强度表面积的显著下降表明图像中包含了与较小开口大小相当的物体。这相当于强度表面积数组的一阶导数,它包含了图像中雪花的大小分布。计算一阶导数diff函数。

intensity_area_prime = diff (intensity_area);情节(intensity_area_prime的m - *网格)标题(“雪花的粒度测定(大小分布)”) ax = gca;斧子。XTick = [0 2 4 6 8 10 12 14 16 18 20 22];包含('雪花半径(像素)')ylabel(“雪花中的像素值的总和作为半径的函数”

图中包含一个轴对象。标题为Snowflakes的Granulometry (Size Distribution)的轴对象包含一个类型为line的对象。

提取具有特定半径的雪花

注意图表中发生的最小值和半径。最小值告诉您图像中的雪花具有那些半径。最小点越负,雪花累积强度越高,该半径越高。例如,在5像素半径标记处发生最负的最小点。您可以通过以下步骤提取具有5像素半径的雪花。

open5 = imopen (claheI strel (“磁盘”,5));Open6 = Imopen(Clahei,Strel(“磁盘”,6));Rad5 = Imsubtract(Open5,Open6);imshow(rad5,[])

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

另请参阅

||||