原始 MediaWiki 页面

我知道编辑这个网站吗?

IJ 斑点

自迁移出 MediaWiki 以来,本页内容尚未经过审查。如果您愿意帮忙,请查看帮助指南

info

文件

ij-blob.jar [1 ]

来源

Github [2 ]


目的

IJBlob库识别二进制图像中的连接组件。用于局部标记的算法是:

Chang, F. (2004)。使用模拟追踪技术的线性时间最小标记算法。计算机和视觉图像理解,93(2), 206–220。 <doi:10.1016/j.cviu.2003.09.002>

连接的组件是由 8 个相邻域连接的一组像素组成,通常称为“显示”。一个例子:

Ijblob 1

上图包含8个标记的虹彩。两个B和O的孔(以及孔的单独)也被识别。还可以获得彩色标记图像:

Ijbloblabeled

另外 ijblob 还识别对象:

Ijblob nested

如果您在科学文献中使用IJBlob,请引用:

Wagner, T 和 Lipinski, H 2013。IJBlob:用于分区数量分析和形状分析的 ImageJ 库。开放研究软件杂志 1(1):e6,DOI:http://dx.doi.org/10.5334/jors.ae

Shape Filter插件使用ij-blob库通过形状来表征和过滤二进制场景中的对象。因此,计算出几个特征,如下所示。

IJBlob 的特点

  • 过滤器框架
  • 提取每个再现的外部图标。
  • 还提取每个显示屏(孔)的所有内部结构。
  • 检测对象(出现在中的显示屏)。
  • 许多形状特征

形状特征

  • 区域 (\(A\)):由对象的外部包围的区域。
  • 区域凸包 (\(C\)):物体构造外部的凸包所包围的区域。
  • 周长 (\(P\)):物体外部虚拟的周长。
  • 周长凸包 (\(H\)):强制凸包的周长。
  • 费雷特直径:在所有方向上接触颗粒物的转弯平行切线之间的最大距离。
  • 最小。费雷特直径:在所有方向上接触颗粒的转弯切线之间的最小距离。
  • 最大。因斯克。圆直径:最大内切圆的直径。
  • 长边边界最大化:边界最小化的增量边。
  • 短边最小化:最小化最小化的边。
  • 纵横比:定义为\(L/S\)
  • 面积周长比:定义为\(A/P\)
  • 循环度:定义为\(P^{2}/A\)
  • 伸长率:定义为\(1 - S/L\)
  • 凸性:定义为\(H/P\)
  • 加固性:定义为\(A/C\)
  • 孔数:物体内部的孔数。
  • 细度比:与圆度成反比。此外它还规范了。它被定义为 \(4\pi A/P^{2}\)
  • 等值线温度:它与分形维数有优势的关系,定义为\(\left(log_{2}\left(\frac{2P}{P-H}\right)\right)^{-1}\)
  • 方向:以梯度为单位的旋转方向(从正x轴逆时针测量)。
  • 分形盒维数:通过盒推测算法估计分形维数。默认盒子大小为“2,3,4,6,8,12,16,32,64”。

例子

示例 1:将图像提取出来并读取显示的周长

import ij.blob.*;
...
private ManyBlobs allBlobs;
...
public void someMethod(ImagePlus imp) {
    ManyBlobs allBlobs = new ManyBlobs(imp); // Extended ArrayList
        allBlobs.setBackground(0); // 0 for black, 1 for 255
    allBlobs.findConnectedComponents(); // Start the Connected Component Algorithm
    allBlobs.get(0).getPerimeter(); // Read the perimeter of a Blob
}

示例 2:示例 2:按 Blob 特征过滤 Blob

在 IJBlob 1.1 中引入了过滤器框架。每个内置 blob 功能都有一个静态标识符(在本例中为“GETENCLOSEDAREA”),其中包含方法名称。

import ij.blob.*;
...
private ManyBlobs allBlobs;
...
public void someMethod(ImagePlus imp) {
    /* Extended ArrayList */
    ManyBlobs allBlobs = new ManyBlobs(imp);

    /* Start the Connected Component Algorithm */
    allBlobs.findConnectedComponents();

    /* Return all blobs with an area between 20 and 100 pixel² */
    ManyBlobs filteredBlobs = allBlobs.filterBlobs(20,100,        
    Blob.GETENCLOSEDAREA);
}

示例 3:添加您自己的功能

IJBlob 1.1 可以通过您自己必须的功能轻松扩展。首先,您从“CustomBlobFeature”类派生一个要素类。要素类还可以包含多个要素。使用“getBlob()”方法,您可以获得对 Blob 的引用,并可以完全访问数据和其他功能。 请注意:如果您的功能方法将原始数据类型(int/float/double)作为参数,则必须使用包装类(Integer/Float/Double)。

import ij.blob.*;
public class ExampleBlobFeature extends CustomBlobFeature {
    public double myFancyFeature(Integer a, Float b){
        double feature = b*getBlob().getEnclosedArea()*a;
        return feature;
    }
    public int mySecondFancyFeature(Integer a, Double b){
        int feature = (int)(b*getBlob().getAreaToPerimeterRatio() *a);
        return feature;
    }
}

示例 4:将检测到的溶液添加到 ROI 管理器

查找所有显示器:

ManyBlobs allBlobs = new ManyBlobs(imp);
allBlobs.findConnectedComponents();

ROI管理器:

Frame frame = WindowManager.getFrame("ROI Manager");
if (frame == null)
    IJ.run("ROI Manager...");
frame = WindowManager.getFrame("ROI Manager");
RoiManager roiManager = (RoiManager) frame;

将外部转换为ROI并将其添加到ROI管理器中:

for (int i = 0; i < allBlobs.size(); i++) {
    Polygon p = allBlobs.get(i).getOuterContour();
    int n = p.npoints;
    float[] x = new float[p.npoints];
    float[] y = new float[p.npoints];   
    for (int j=0; j<n; j++) {
        x[j] = p.xpoints[j]+0.5f;
        y[j] = p.ypoints[j]+0.5f;
    }
    Roi roi = new PolygonRoi(x,y,n,Roi.TRACED_ROI);             
    Roi.setColor(Color.green);
    roiManager.add(imp, roi, i);
}

谁用过这个插件?

这是使用 ijblob / shape 过滤器插件的书籍列表:

库尔巴卡,J.,库尔巴基,M.,塞根,J.,乔达切克,G.,杜宾斯卡-马吉拉,M.,&萨克兹科,J.(2016)。通过CLSM图像自动分析细胞核泄漏。计算机科学中的智能信息和数据库系统讲义,407-416。 <doi:10.1007/978-3-662-49390-8_40>

Ullrich, M.、Haša, J.、Hanuš, J.、Šoóš, M. 和 Štěpánek, F. (2016)。通过碱体的受控聚集形成多室颗粒。粉末技术,295, 115-121。 <doi:10.1016/j.powtec.2016.03.021>

Kuleesha, Y.、Puah, W. C.、Lin, F. 和 Wasser, M. (2014)。 FMAj:果蝇变态解剖动力学高关联分析工具。 BMC 生物信息学,15(增刊 16)。 <doi:10.1186/1471-2105-15-s16-s6>

Cinquin,B.,Maigre,L.,Pinet,E.,Chevalier,J.,斯塔文格,R.A.,米尔斯,S.,。。帕格斯,J.(2015)。关于单个细菌细胞水平上抗生素吸收的显着微光谱分析。科学。科学报告,5,17968。<doi:10.1038/srep17968>

Starborg, T.、Kalson, N.S.、Lu, Y.、Mironov, A.、Cootes, T. F.、Holmes, D. F. 和 Kadler, K. E. (2013)。使用阳台电子支架和 3View 确定纤维素纤维尺寸和三维组织。Nat Protoc 自然协议,8(7), 1433-1448。<doi:10.1038/nprot.2013.086>