雪花的粒度

这个例子展示了如何通过使用粒度计算雪花的图像中的大小分布。粒度确定对象的图像中的大小分布而无需明确分割(检测)的每个对象首。

读出的图像

读取的“snowflakes.png”图像,这是雪花的照片英寸

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

增强对比度

第一步是要最大限度地提高图像中的强度对比。您可以使用做到这一点adapthisteq功能,其执行对比度限制的自适应直方图均衡化。使用重新缩放图像强度imadjust功能,使其充满了数据类型的整个动态范围。

claheI = adapthisteq(I,'NumTiles'[10 10]);claheI = imadjust(claheI);imshow(claheI)

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

粒度估计雪花的强度表面积分布大小的函数。粒度比喻形象对象结石其尺寸可以通过增加尺寸和收集各道次后剩下的屏幕筛选他们来决定。图像对象由与尺寸增加的结构元素打开图像与每个开口后计数的剩余强度表面积(图像中的像素值的总和)筛分。

从而使强度表面积变为零,你增加你的结构元素的尺寸选择计数器的限制。用于显示目的,离开表面区域阵列清空在所述第一条目。

radius_range = 0:22;intensity_area =零(大小(radius_range));对于计数器= radius_range留= IMOPEN(claheI,strel(“盘”,计数器));intensity_area(计数器+ 1)=总和(保持(:));结束图图(intensity_area,'M  -  *')网格标题(“的像素值的总和在打开的图像随半径”)xlabel(“开口(像素)的半径”)ylabel(“打开的对象(强度)的像素值之和”

计算一阶导数分布

两个相邻孔口之间的强度表面积A显著下降表明,将图像中包含的较小的开口可比尺寸的物体。这相当于强度表面积阵列,其中包含了雪花在图像中的尺寸分布的第一导数。计算与一阶导数DIFF功能。

intensity_area_prime = DIFF(intensity_area);积(intensity_area_prime,'M  -  *')网格标题(“雪花的颗粒度(粒径分布)”)AX = GCA;ax.XTick = [0 2 4 6 8 10 12 14 16 18 20 22];xlabel(“的雪花(像素)半径”)ylabel(“的像素值的总和在雪花作为半径的函数”

雪花提取具有特定半径

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

open5 = IMOPEN(claheI,strel(“盘”,5));open6 = IMOPEN(claheI,strel(“盘”,6));的rAd5 = imsubtract(open5,open6);imshow(的rAd5,[])

也可以看看

||||