科 / 研 / 图 / 像 / 处 / 理
对于血管、线粒体网络等图像,骨架化后可以计算骨架的分支、交点等参数,从而更好地对图像进行描述。
https://imagej.net/plugins/analyze-skeleton/
这篇文章会以下图为例,展示怎样计算下图的 分支、交点、最长骨架以及每个分支的平均宽度。
▲图片来源:上海当代艺术博物馆
一、插件安装
Fiji 自带的骨架分析的插件 AnalyzeSkeleton,无需下载。
但 Fiji 不自带 Summarize Skeleton 这个功能,如果需要直接总结骨架结果,需要通过 Update sites 进行安装 Neuroanatomy :
二、插件使用
1、初始设置(Process -> Binary -> Options)
这一步是为了避免后续进行二值化时,图像变成 Inverting LUT 的情况。
2、转为8-bit后,二值化图像
Image -> Type -> 8-bit,Image -> Adjust -> Threshold
3、骨架化图像(Process -> Binary -> Skeletonize)
4、修补骨架(Optional)
骨架化对于不连续的二值化信号,会生成断裂的骨架,这时候就需要把断裂的部分自动进行修补:
原理是把骨架化的图像高斯模糊一下,然后重新二值化、骨架化。
这种方法也适用于去除骨架上一些小的 spur:
5、分析骨架(Analyze -> Skeleton -> Analyze Skeleton (2D/3D))
这里需要关注的参数,更具体的描述请参照官网:
Prune cycle method:
是否修剪骨架中的环结构(把环修剪成树):
Elimination of End-points:
是否修剪含有终止点的分支(只保留有多个分支的骨架)
Results and Output:输出哪些结果,主要是Show detailed info和labeled skeletons
输出结果:
分支信息(分支长度、起点终点、两点间欧氏距离),骨架中检测到的树的总体信息(分支和分支点数量、分支平均长度等)
标注好的骨架(紫色为分支点,红色为分支),以及最长路径(红色)
6、得到每个分支的ROI
Tagged Skeleton 本质是一个 8-bit 的图像,分支和分支点的灰度值不一样,所以可以通过 Threshold,直接选中分支,并进行二值化:
通过 Analyze -> Analyze Particles,可以得到每个分支的 ROI:
这里通过设置 size,滤除了长度少于5个 pixel 的分支。
7、对二值化的图进行距离变换(Process -> Binary -> Distance Map)
▲右图加了伪彩
进行距离变换后,每个 pixel 的值,等于 该 pixel 离最近的背景之间的欧氏距离。所以骨架处的值即为半径。
选中 Distance map 的图片,点击 ROI Manager 中的 Measure:
Mean即为这一个分支的平均半径,乘以 2 就是平均直径。
注意
大家记得把 <科研图像处理> 设置为星标哦,避免错过精彩内容:
往期回顾
◆ 荧光强度测量