【发布时间】:2017-11-14 15:36:52
【问题描述】:
我有一系列冰的图像,我想分析这些图像以确定固体与液体的面积。示例图像here。这类似于孔隙率测量,但由于颜色太相似而无法简单地进行阈值测量,因此我很挣扎。
目前我不得不使用对比度/查找边缘/去斑/制作二进制以使晶体更容易识别。
然后我将它们通过形态分割: example 然后是计算区域的阈值。
有没有更简单的方法来计算冰的面积与空间/液体的面积,而不必追踪每个晶体?
【问题讨论】:
标签: imagej
我有一系列冰的图像,我想分析这些图像以确定固体与液体的面积。示例图像here。这类似于孔隙率测量,但由于颜色太相似而无法简单地进行阈值测量,因此我很挣扎。
目前我不得不使用对比度/查找边缘/去斑/制作二进制以使晶体更容易识别。
然后我将它们通过形态分割: example 然后是计算区域的阈值。
有没有更简单的方法来计算冰的面积与空间/液体的面积,而不必追踪每个晶体?
【问题讨论】:
标签: imagej
您的图像具有不均匀的背景照明,因此进行背景减法是有意义的。 Find Edges 是一个很好的预处理步骤,可以增强边缘,使形态分割(这里是一个合理的工具)更容易。
这是一个示例宏,它可以自动执行其中的许多步骤:
// Perform a background subtraction.
orig = getImageID();
run("Duplicate...", " ");
dupl = getImageID();
run("Gaussian Blur...", "sigma=50");
imageCalculator("Subtract create 32-bit", orig, dupl);
// Enhance the edges.
run("Find Edges");
// Run Morphological Segmentation.
run("Morphological Segmentation");
wait(1000); // HACK
call("inra.ijpb.plugins.MorphologicalSegmentation.segment", "tolerance=20", "calculateDams=true", "connectivity=6");
call("inra.ijpb.plugins.MorphologicalSegmentation.setDisplayFormat", "Catchment basins");
call("inra.ijpb.plugins.MorphologicalSegmentation.createResultImage");
生成的图像的每个区域都有不同的实体值:
您可以从那里创建一个直方图(分析 > 直方图)来获取每个强度值的计数,即每个对象的面积。由于某种奇怪的原因,直到我首先复制了结果图像(shift+d),它才对我有用。
您可以单击“复制”按钮将整个直方图放入剪贴板,然后将其粘贴到电子表格程序或文本文件中,以便在其他工具中进行分析。
肯定有其他(可能更好)的方法来分析来自形态分割的集水盆地“标记”图像;考虑在ImageJ Forum 上询问更多想法和建议。
您可以尝试的另一个更简单的选项是Trainable Weka Segmentation。
【讨论】: