我有两个数据集,一个有 884 个图像,另一个有 1057 个图像;数据集来自原位加热实验。我已经处理了数据(互相关、过滤等)。现在,我有两个二进制图像数据集。我需要测量每个图像中每个粒子的粒子数、面积和纵横比(我可以使用数字显微照片工具菜单中的粒子分析来完成)。我需要通过我的整个数据集连接测量值,这意味着,在一张图像中测量的一个粒子需要与另一张图像中的相同粒子。我相信这不是一项微不足道的任务。但是,有没有其他人知道我如何在这项任务中取得进展?
1 回答
1
以下信息可能对您的工作有用:
使用 命令在GMS 3中添加了对 DigitalMicrograph 的粒子分析功能的脚本访问
FindParticles
。
尚无文档,但以下脚本示例演示了该方法。
一些注意事项:
- 掩码图像以及 foundParticlesImage 需要是二进制类型
- 返回的图像文档包含作为电子表格的结果,菜单也返回一个
例子:
image inputImage := GetFrontImage()
number sx, sy
getsize( inputImage, sx, sy )
image mask := BinaryImage( "Binary Mask", sx, sy ) // The real input for analysis
Image foundParticlesImage := BinaryImage( "found", sx, sy ) // Accepted particles mask (result)
mask = inputImage>0.6*max(inputImage) ? 1 : 0 // This is a simple Treshold to test...
string mFields = "Area,FilledArea,CenterX" // Specify analysis results
Number minParticleSize = 15 // Limit accepted
Number doLabel = 0 // Add labeled mask to inputImage True/False
imageDocument ResultsDoc = FindParticles(inputImage,mask,mFields, minParticleSize, doLabel, foundParticlesImage)
ImageDocumentShow( ResultsDoc )
Showimage( mask )
ShowImage( foundParticlesImage )
您可能还会发现以下有用:
自GMS 1以来,对二进制图像处理的脚本访问是 DigitalMicrograph 的一部分。这些命令反映了分析菜单选项:
MPOpen
、MPClose
、MPErode
、MPDilate
、MPOutline
、MPDistanceMap
、MPEuclideanDistanceMap
、MPExactDistanceMap
。
所有这些命令都要求掩码图像为二进制类型。
例子:
image CreateMPCloseStack( image maskInput, number neighbors, number iterations )
{
number sx, sy
GetSize( maskInput, sx, sy )
image maskBinary := BinaryImage( "mask", sx, sy )
maskBinary = maskInput
image outStack := BinaryImage( "Stack", sx, sy, iterations + 1 )
for( number n=0; n<= iterations; n++ )
{
outStack[0,0,n,sx,sy,n+1] = maskBinary
maskBinary = MPClose( maskBinary, neighbors )
}
return outStack
}
image maskInput := GetFrontImage()
ShowImage( CreateMPCloseStack( maskInput, 5, 10 ) )
于 2016-11-10T11:12:21.317 回答