粒度计算从给定的图像
37视图(30天)
显示旧的评论
答案(2)
蒂亚戈恩里克戈麦斯Lobato
2020年5月10日
的大小
每一个
粒子是一个任务自动化非常困难,你总会得到一些错误由于不同光线条件下,粒子分布,粒子重叠等。更容易处理和现实的一个问题是计算岩石的大小
分布,
这将给你尺寸是如何统计的分布在图像。我拍了一些灵感从图像分析
教程
,使一个代码,你可以作为一个开始微调。这样你至少可以得到粒度分布的估计:
我= imread (“image.jpeg”);
Ibinary = rgb2gray (I) > 150;你的问题尝试不同的百分比值
Ibinary = imfill (Ibinary,“黑洞”);
C = 0.008;%转换因子m /像素。这是一个猜测,您应该能够找到真正的一个
[labeledImage, numberOfBlobs] = bwlabel (Ibinary);
blobMeasurements = regionprops (labeledImage,“重心”,“EquivDiameter”);%我相信当量直径是一个很好的方法来测量尺寸,
%你还可以检查不同的指标
%得到当量直径
EquivDiameter = [blobMeasurements.EquivDiameter];
ValidDia =找到(EquivDiameter > 10);%的一些经验阈值
blobMeasurements = blobMeasurements (ValidDia);
EquivDiameter = EquivDiameter (ValidDia);
%的概率估计的大小
图,柱状图(EquivDiameter * C,“归一化”,“概率”),包含(的大小(m -未校准)),ylabel (“概率”)
%显示一些粒子
图中,imshow (Ibinary);持有在
%显示区域形象
为idx = 1:2:长度(ValidDia)%遍历所有气泡。
质心= [blobMeasurements (idx) .Centroid (1) blobMeasurements (idx) .Centroid (2)];
DiamSize = [“直径= '。,num2str ((EquivDiameter (idx) * C)));
文本(质心(1),重心(2),DiamSize,“颜色”,“c”);
viscircles(质心EquivDiameter (idx) / 2);
结束