自迁移出 MediaWiki 以来,本页内容尚未经过审查。如果您愿意帮忙,请查看帮助指南!
##最合适
该插件用于推断输入图像中存在的结构的首选方向。它计算一个直方图,指示给定方向上的结构数量。具有完全各向同性内容的图像预计会给出平坦的直方图,而具有首选方向的图像预计会给出在该方向具有峰值的直方图。
例如,在上图所示的松树枝中,针状叶片存在2个群体,一种的首选方向约为45°,另一种的首选方向约为-45°。该插件可以很好地检测到这一点,并报告60°和-60°处的两个主峰。最重要的是,在0°附近可以看到一个小峰,报告了主分支的方向。
角度习得常见的数学意义来报告。即:0°为东方向,方向为逆时针方向。
用户界面允许指定:
- 划分180°的bin数量(默认值:90)。
- 分析的起始角度(默认-90°)。角度偏差值应设为180°添加起始值。添加此选项是为了避免+90°处的热点在直方图的边界处分割。
- 调试标志(如果设置)将导致显示角度轴和功率谱。
- 结果表标志将生成一个包含所有要显示的结果值的表。此后可以将表导出为 CSV 文件;见下文。
- 方向图标志将导致生成方向图;见下文。
生成的统计数据
在直方图之上,该插件尝试有关生成的最高的统计信息。
- 考虑直方图的周期性性质,最高峰由高斯函数简单。
- “方向 (°)”列报告高斯的中心。
- “色散(°)”列报告高斯的标准偏差。
- “金额”列是从 center-std 到 center+std 的直方图总和除以直方图总和。真实的直方图值用于求和,而不是高斯单体。
- “Goodness”栏报告了一个的好坏;1为好,0为差。
对人造图像进行的研究表明,此处计算的“数量”值低估优先方向的结构的真实比例。因此,对于上面的松树图像,我们可以得出结论,针叶表示+60°的比例至少为25%(左右图像并不完全均匀,这超过了这个数量值的意义)。
结果数据导出
1.通过复制粘贴将方向性结果窗口内容保存到电子表格中。 2.如果要保存直方图的图像,请右键单击该图,然后选择另存为。 3.要导出直方图数据,请选中插件对话框窗口中的数据表框。这将生成一个结果表,可以通过右键单击将其导出为csv文件,或者直接复制粘贴到电子表格等中。
它是如何工作的?
已经考虑了不同的解决方案,目前正在实施其中两个:
傅立叶数量分析
该方法基于傅里叶谱分析。对于方形图像,与输入图像中对象的方向相比,具有首选方向的结构在图像的傅里叶变换中生成+90°方向的周期性图案。
该插件将图像矩形方形块,并计算它们的傅里叶威力谱。黑暗在极坐标中进行分析,并使用 [^1] 中提出的空间滤波器测量每个角度的威力。
局部焦点方向
这个方法是局部的。使用5x5 Sobel滤波器计算图像的梯度,并用于消除局部梯度方向。然后,通过将梯度范数的平方放入适当的箱中,使用该方向来构建直方图。保留范数的平方,以便得到与傅里叶分析具有相同维度的直方图。
方位图
从2.0版本开始,该插件提供了生成方向图的可能性,其中图像根据其局部方向性或位置方向进行着色。在局部梯度定向方法的情况下,这具有很容易定义的意象,但在傅立叶最小值(全局方法)的情况下,事情有点复杂。
在后一种情况下,使用上述傅里叶滤波器对图像进行辅助,并使用傅里叶逆变换将图像变换回来。对于每个像素,保留的方向是沿着该方向过滤时强度最强的方向。
为了生成方向图像,通过获取HSB图像来生成
- 方向局部作为色调;
- 原始图像灰度值作为亮度;
- 对于排水尺寸:
- the power spectrum value for the Fourier component method;
- the gradient magnitude square for the Local gradient orientation method.
测试图像
这是用于测试插件准确性的两个图像堆栈:
VaryingDirection.tif是由人工结构组成的5片16位堆栈。每个切片的大小为512x512像素,包含2000个平均长度为100个像素的杆。其中1000个棒具有随机方向,其他1000个棒的方向从第一个切片到最后一个切片的范围为-60°到60°。因图像std 1高斯而模糊,并会导致松松噪声和损坏。您可以用它来确定检测角度的准确性。该金额应接近且低于50%。
VaryingAmount.tif与之前的堆栈相同的参数,但具有不同数量的定向棒(从2000根棒的20%到100%),并且定向棒的方向固定为-60°。您用它来测试“金额”分数。
代码结构
该插件是作为经典 ImageJ 插件编写的。它实现 PlugInFilter,并依赖 PlugInFilterRunner 来运行。
可以使用 setup(String, ImagePlus) 方法将字符串参数传递给它。例如: ImagePlus imp = IJ.openImage(“./TwoLines.tif”); imp.show(); Directionality_ da = new Directionality_(); String command = “/plugins/directionality”; new PlugInFilterRunner(da, command, “nbins=60, start=-90, method=gradient”);
脚本编写
一般脚本
还可以从另一类甚至在脚本中以非交互方式运行插件。以Python为例:
from fiji.analyze.directionality import Directionality_
from ij import WindowManager, ImagePlus
# Instantiate plugin
dir = Directionality_()
# Set fields and settings
dir.setImagePlus(WindowManager.getCurrentImage())
# dir.setMethod(fiji.analyze.directionality.Directionality_.AnalysisMethod.LOCAL_GRADIENT_ORIENTATION)
dir.setMethod(Directionality_.AnalysisMethod.FOURIER_COMPONENTS)
dir.setBinNumber(30)
dir.setBinStart(-60)
dir.setBuildOrientationMapFlag(True)
# Do calculation
dir.computeHistograms()
dir.fitHistograms()
# Display plot frame
plot_frame = dir.plotResults()
plot_frame.setVisible(True)
# Display fit analysis
data_frame = dir.displayFitAnalysis()
data_frame.setVisible(True)
# Display results table
table = dir.displayResultsTable()
table.show("Directionality histograms")
# Display orientation map
stack = dir.getOrientationMap()
ImagePlus("Orientation map", stack).show()
# Generate a color wheel
Directionality_.generateColorWheel().show()
###获取主要参数
应杰西卡·曼斯菲尔德(英国埃克塞特大学)的请求 - 2010年10月。
该插件使用高斯来但是计算方向性参数;但是,不会返回简单的参数本身。可以使用脚本来获取它们。
高斯具有以下形式:
\[y = a + (b-a)*\exp\left(-\frac{(x-c)^2}{2 d^2}\right)\]参数由方法public ArrayList<double[]> getFitParameters()返回,该方法在double[]的ArrayList中返回a、b、c和d,堆栈中每个片剂一个存储器。
您可以使用以下脚本搜索并显示它们:
from fiji.analyze.directionality import Directionality_
from ij import WindowManager
from ij.measure import ResultsTable
# Instantiate plugin
dnlty = Directionality_()
# Set fields and settings
imp = WindowManager.getCurrentImage()
dnlty.setImagePlus(imp)
dnlty.setMethod(Directionality_.AnalysisMethod.FOURIER_COMPONENTS)
dnlty.setBinNumber(30)
dnlty.setBinStart(30)
dnlty.setBuildOrientationMapFlag(False) # No orientation map
# Do calculation
dnlty.computeHistograms()
dnlty.fitHistograms()
# Display plot frame
plot_frame = dnlty.plotResults()
plot_frame.setVisible(True)
# Display fit analysis
# data_frame = dir.displayFitAnalysis()
# data_frame.setVisible(True)
# Display results table
# table = dir.displayResultsTable()
# table.show("Directionality histograms")
# Get the fit params and put them in a results table
fitParams = dnlty. getFitParameters()
rt = ResultsTable()
index = 1;
for param in fitParams:
rt.incrementCounter()
rt.addLabel(imp.getStack().getShortSliceLabel(index))
rt.addValue('a', param[0])
rt.addValue('b', param[1])
rt.addValue('c', param[2])
rt.addValue('d', param[3])
index = index + 1;
rt.show('Fit param for y = a + (b-a)*exp(-(x-c)*(x-c)/(2*d*d)')
这个插件的使用
由于没有与此插件相关的书籍,因此很难跟踪它的使用位置。但是,人们写信给我并帮助建立了以下列表。方向性插件至少已在以下书籍中使用:
-
Sensini A.、Gualandi C.、Zucchelli A.、Boyle L.、Kao A. P.、Reilly G. C.、Tozzi G.、Cristofolini L.、Focarete M. L. (2018),具有增强3D结构和生物力学特性的聚纤维素束腱纤维素纳米纤维。报告,8:17617。doi: https://doi.org/10.1038/s41598-018-35536-8
-
Deravi、Leila F.、Nina R. Sinatra、Christophe O. Chantre、Alexander P. Nesmith、袁红艳、Sahm K. Deravi、Josue A. Goss 等人。“Design and Fabrication of Fibrous Nanomaterials Using Pull Spinning.”高分子材料与工程302,没有。3(2017)。
-
Natalie Reznikov、Rotem Almany-Magal、Ron Shahar、Steve Weiner,Three-dimensional imaging of collagen fibril organization in rat circumferential lamellar bone using a dual beam electron microscope reveals ordered and disordered sub-lamellar structures,Bone,第 52 卷,第 2 期,2013 年 2 月,第 676-683 页,ISSN 8756-3282。
-
Natalie Reznikov、Ron Shahar、Steve Weiner,Three-dimensional structure of human lamellar bone: The presence of two different materials and new insights into the hierarchical organization,Bone,第 59 卷,2014 年 2 月,第 93-104 页,ISSN 8756-3282。
-
最后一篇论文及其方法已针对Pr. Weiner lab webpage进行了阐明。
-
Sensini, A.、Gualandi, C.、Cristofolini, L.、Tozzi, G.、Dicarlo, M.、Teti, G.、Mattioli-Belmonte, M. 和 Focarete, M.L. (2017) 修改人类跟腱束的聚(乳酸)-胶原蛋白混合物束的生物制造。生物制造 9(1), 1–13。 <doi:https://doi.org/10.1088/1758-5090/aa6204>
-
SENSINI, A.、CRISTOFOLINI, L.、FOCARETE, M.、BELCARI, J.、ZUCCHELLI, A.、KAO, A. 和 TOZZI, G. (2018),用于肌腱和韧带再生和替换的电纺纳米纤维束的尖端 X 射线断层扫描形态特征。 <doi:10.1111/jmi.12720>
如果您使用它,请告诉我,以便我可以添加到此列表中。
版本历史
- v2.0:在经历了很多错误和问题之后,多数方法现在都建议生成一个方向图,根据局部方向性对图像进行着色。
- v1.2:添加了基于局部焦点方向的新分析方法。
- v1.1:添加了将直方图导出为表格的选项。
- v1.0:首次使用傅里叶方法进行工作提交。
这个插件的愿望清单
进一步发展的可能途径:
- 拥有一个热点查找器,可以处理多个热点并返回它们的统计数据。
- 在傅里叶方法中添加适配器滤波器,这将允许仅选择具有给定长度(+/-带宽)的结构。另外,为局部最定向方法添加缩放选项。
参考文献
与 A. Leroy 的讨论以及与 J. Schindelin 的另一次讨论都得到了极大的认可。
[^1]:刘.用于图像定向分析的几何空间方法。应用。选择。(1991)卷。30 (11)第1369-1373页