文章目录
- 一、Fiji —— 基于 imageJ 的免费且开源的图像处理软件
- 1.1、Fiji工具安装(免费)
- 1.2、Fiji源码下载
- 1.2、Fiji - Plugins插件安装
- 二、功能详解
- 2.0、Fiji - ImageJ(Web应用程序)
- 2.1、常用功能(汇总)
- 2.2、高级功能
- (1)一种基于梯度分布的图像清晰度测量方法 —— 半高宽
- (2)查看两个图层是否存在偏移(手动偏移校正)
- (3)Fiji - Process - Binary - Skeletonize:图像骨架化与分析
- (4)Fiji - Analyze - Analyze Particles:自动计数
- (5)Fiji - Plugins - 3D Viewer:3D渲染(支持简单动画)
- (6)Fiji - Plugins - 3D script:3D渲染(支持复杂动画)
- (7)Fiji - Plugins - labkit:显微镜图像分割
- (8)Fiji - Plugins - Cellpose:基于深度学习的细胞分割方法
- (9)Fiji - Plugins - fairSIM:一种快速而温和的超分辨率方法(显著提升图像分辨率)
一、Fiji —— 基于 imageJ 的免费且开源的图像处理软件
Fiji 与 ImageJ 的比较,就如同 Ubuntu 与 Linux 的比较一样。
ImageJ
:用于处理和分析科学图像的开源软件。
- 由美国国立卫生研究院(NIH)开发
ImageJ
:是最初的桌面应用程序,自 1997 年开始开发。ImageJ2
:是针对科学多维图像数据的 ImageJ 新版本。Fiji(Fiji is just imageJ)
:用于科学图像分析的 ImageJ 的 " 内置功能 " 发行版。
- 它在 ImageJ 的基础上预装了大量常用插件和脚本,简化了安装和配置过程,特别适合生物图像分析。Fiji 还集成了更新管理功能,方便用户获取最新插件和工具。
- 核心基础
两者都基于 ImageJ 的核心代码,因此具有相同的图像处理和分析功能。
两者使用相同的编程语言(Java)和脚本语言(如宏和 JavaScript)。- 开源与免费
两者都是开源软件,用户可以免费下载和使用。
源代码公开,允许用户根据需要修改和扩展功能。- 跨平台支持
两者都支持跨平台运行,可在 Windows、macOS 和 Linux 系统上使用。- 插件扩展
两者都支持通过插件扩展功能,用户可以根据需要添加特定工具或算法。
共享大量相同的插件生态系统(拥有数千个插件)。- 图像处理与分析功能
提供丰富的图像处理功能,如滤波、分割、增强、形态学操作等。
提供测量工具,用于定量分析(如长度、面积、强度等)。- 科学应用
广泛应用于科学研究领域,如生物学、医学、材料科学等。
支持处理显微镜图像、医学影像、时间序列图像等。
支持多种图像格式(如 TIFF、JPEG、PNG、DICOM 等)。
1.1、Fiji工具安装(免费)
- 【Fiji】https://fiji.sc/
- Fiji 拥有数千个插件:https://imagej.net/list-of-extensions!
1.2、Fiji源码下载
- 【imageJ or imageJ2】https://github.com/imagej
- 【Fiji】https://github.com/fiji
- 项目搭建:通过 IntelliJ IDEA 加载项目(源码),并完成配置环境,最后执行项目。
- Java 环境配置 + IntelliJ IDEA 使用指南
- 使用建议:通过源码启动工具,可以分析其每个步骤(函数或算法)的执行逻辑(像素级)。
- 用于加速学习和理解,而且可以快速复现功能。
实测结果:Fiji 开源版本对 SDK 版本有特定要求,最终测定并安装成功。
- JDK版本号:
Oracle OpenJDK version 1.8.0_77
(官网下载安装)
- 已测试版本(失败):
Oracle OpenJDK version 1.8.0_441
(官网下载安装)- 已测试版本(失败):
Amazon Corretto version 1.8.0_442
(使用IntelliJ IDEA在配置中自动下载)- 已测试版本(失败):
Amazon Corretto version 18.0.2
(使用IntelliJ IDEA在配置中自动下载)- 已测试版本(失败):
Oracle OpenJDK version 20.0.1
(官网下载安装)- 已测试版本(失败):
Oracle OpenJDK version 23.0.2
(使用IntelliJ IDEA在配置中自动下载)- maben版本(该工具版本没要求):apache-maven-3.9.2
错误提示如下:
Exception in thread "main" java.lang.NoClassDefFoundError: io/scif/SCIFIOServiceat net.imagej.ImageJ.<init>(ImageJ.java:75)at sc.fiji.Main.main(Main.java:50)
Caused by: java.lang.ClassNotFoundException: io.scif.SCIFIOServiceat java.net.URLClassLoader.findClass(URLClassLoader.java:381)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)... 2 more
官方:我们致力于开源。开源不仅允许其他开发人员将应用程序移植到原作者未曾想到的新平台上,还允许科学家研究代码以了解所用算法的内部工作原理,并允许其他人以全新的方式使用该程序,并以所有可以想象的方式对其进行改进。
1.2、Fiji - Plugins插件安装
安装教程:
Fiji - Help - Update - Manage update sites - 选择插件 - Apply and Close - Apply changes - Restart Fiji
二、功能详解
2.0、Fiji - ImageJ(Web应用程序)
Fiji - ImageJ(Web应用程序):https://ij.imjoy.io
2.1、常用功能(汇总)
详细功能介绍请点击
Fiji - Help
或在search
窗口中输入功能名称。
以下是使用过程中的常用功能,由于 Fiji 集成功能非常庞大,仅供参考。
功能 操作步骤 快捷键
"""加载超大内存图像 Fiji - File + Import + TIFF Virtual Stack保存图像 Fiji - File + Save as + TIFF/Image Sequence保存Screenshot Ctrl + Shift + G查看三视图 Ctrl + Shift + H绘制直方图 Ctrl + H截取图像 Fiji - 绘制矩形框 + 鼠标右键 + Duplicate + Range(3D)Image数据类型转换 Fiji - Image + Type对比度调整 Fiji - Image + Adjust + Brightness/Contrast Ctrl + Shift + C灰度阈值分割 Fiji - Image + Adjust + Threshold Ctrl + Shift + T最大强度投影 Fiji - Image + Stacks + Z Project + Max Intensity切换观察视角 Fiji - Image + Stacks + Reslice + Start atProcess轮廓提取 Fiji - Process + Find Edges去除背景 Fiji - Process + Subtract Background直方图均衡化 Fiji - Process + Enhance Contrast添加噪声 Fiji - Process + Noise + 随机噪声/高斯噪声/椒盐噪声gamma值调整 Fiji - Process + Math + GammaFFT Fiji - Process + FFT + FFT or Inverse FFT高斯滤波 Fiji - Process + Filters + Gaussian Blur - sigma(Radius)Analyze绘制信号分布图 Fiji - 绘制矩形框 + Analyze + Plot Profile Ctrl + K同步窗口 Fiji - Analyze + Tools + Synchronize Windows同步ROI Fiji - 绘制矩形框 + TPlugins(插件)自定义感兴趣区域 Fiji - Plugins + Easing ROI + Specify ROI Size
"""
2.2、高级功能
(1)一种基于梯度分布的图像清晰度测量方法 —— 半高宽
一种基于梯度分布的图像清晰度测量方法,通过
半高宽(FWHM, Full Width at Half Maximum)
来衡量图像的锐度。这种方法适用于 自动化清晰度评估,广泛用于显微成像、遥感影像和图像增强领域。
- (1)选择图像中具有代表性的梯度信号【Ctrl+K:绘制信号分布图】,其具有边缘和细节的区域。
- (2)在梯度信号的直方图中,计算半高 = (A+B)值的一半。如:A = 最高峰值(例如 2100),B = 低值区的频率(例如 300),半高=1200
- (3)寻找直方图中等于半高的点,绘制水平直线【Shift+鼠标:绘制直线】
- (4)在曲线上找到两个交点,计算两点之间的距离(像素单位),更短的 FWHM 表示更清晰的图像。如:上图=2.56,下图=3.0。因此上图比下图的图像质量更高,更清晰。
锐度(Sharpness)
:是指图像中边缘的清晰度和细节的可见性,通常由对比度变化的速率和 高频信息的丰富程度共同决定。图像的锐度可以通过像素灰度值的梯度变化来衡量:
- 锐度高:(1)边缘清晰,细节丰富;(2)梯度大,灰度值变化快;(3)高频成分多
- 锐度低:(1)边缘模糊,丢失细节;(2)梯度小,灰度值变化慢;(3)高频成分少
(2)查看两个图层是否存在偏移(手动偏移校正)
(3)Fiji - Process - Binary - Skeletonize:图像骨架化与分析
Fiji - AnalyzeSkeleton(支持2D和3D图像)
ImageJ | 图像骨架化分析
(1)初始设置:Process - Binary - Options:Black background(标记背景为黑色)
(2)数据类型转换:Image -> Type -> 8-bit
(3)阈值分割:Image -> Adjust -> Threshold
(4)骨架化图像:Process -> Binary -> Skeletonize
(5)骨架化分析:Analyze -> Skeleton -> Analyze Skeleton (2D/3D)
- Prune cycle method:是否修剪骨架中的环结构(把环修剪成树)
- Elimination of End-points:是否修剪含有终止点的分支(只保留有多个分支的骨架)
- Results and Output:输出哪些结果,主要是Show detailed info和labeled skeletons
分支信息(分支长度、起点终点、两点间欧氏距离),骨架中检测到的树的总体信息(分支和分支点数量、分支平均长度等)
(4)Fiji - Analyze - Analyze Particles:自动计数
ImageJ 基础篇 | 基于阈值分割的自动细胞计数
- 作用:用于对二值或阈值图像中的对象进行计数和测量(即:连通区域的区域数量)
- 操作过程:
(1)打开图像:File - Open,或者将图片直接拖动到菜单栏
(2)阈值分割:Fiji - Image - Adjust - Threshold
(3)填补空隙:Fiji - Process - Binary - Fill holes
(4)分水岭算法(分割重叠细胞):Fiji - Process - Binary - Watershed
(5)自动计数:Fiji - Analyze - Analyze Particles- 备注:阈值分割决定了细胞计数效果(2D算法,支持2D和3D)
- Size:300-Infinity —— 指分析颗粒面积大于300(这里的单位是pixel),一直到无穷大的颗粒。(根据细胞大小,以及结果好坏来更改)
- Circularity:0.00-1.00 —— 指圆度,可以根据细胞形状,调整需要的圆度,1.00为标准圆。
- Exclude on edge s—— 处于边缘的颗粒不计入
(5)Fiji - Plugins - 3D Viewer:3D渲染(支持简单动画)
(6)Fiji - Plugins - 3D script:3D渲染(支持复杂动画)
- Fiji - 3D script(官网介绍 + 视频教程)
- Fiji - 3D script(使用手册)
- Fiji - 3D script(开源代码)
- Fiji - 3D script(论文地址)
- Fiji - 3D script(演示示例)
3Dscript
是Fiji / ImageJ的一个插件,用于创建显微镜数据的 3D 和 4D 动画。与现有的3D Viewer
不同,动画不是基于关键帧的,而是由基于自然语言的语法描述的。
From frame 0 to frame 180:
- rotate by 180 degrees horizontally ease-in-out
- zoom by a factor of 0.25
- zoom by a factor of 1.5From frame 50 to frame 350:
- rotate by 270 degrees vertically around (0, 0, 1)
(7)Fiji - Plugins - labkit:显微镜图像分割
Fiji - labkit(官网介绍 + 视频教程):用于显微镜 2D 或 3D 图像的手动和自动分割
细胞分割效果较好,脑图像分割效果较差(需要精调)
(8)Fiji - Plugins - Cellpose:基于深度学习的细胞分割方法
基于预训练模型(cellpose提供基于细胞质、细胞核等七个不同数据集训练得到的模型),然后在自己的数据集上预测,并手动标记ROI进行模型微调。
只适用于细胞分割(细胞质、细胞核),不适用于神经元分割(如下图)
(9)Fiji - Plugins - fairSIM:一种快速而温和的超分辨率方法(显著提升图像分辨率)
链接中提供了:JAR安装包、Github源码、论文、使用手册,视频教程
超分辨结构化照明荧光显微镜 (super-resolved structured illumination fluorescence microscopy,SR-SIM)
为荧光显微镜提供了一种快速而温和的超分辨率方法。fairSIM
项目旨在为使用 SIM 的科学家提供一系列免费的开源工具和资源。
- 操作过程
- 对比效果
备注:宽场滤波可显著提升RCAN训练中的GT质量
- 在基于深度学习的图像超分辨(Super-Resolution)任务中,RCAN(Residual Channel Attention Network)等高性能模型的最终效果,在很大程度上依赖于高质量的GroundTruth(GT)图像。
- 实践中,原始图像往往存在信噪比较低、细节模糊、背景冗余等问题,直接用于训练会限制模型对高频细节的建模能力。为此,在构建训练集GT时,采用宽场滤波(Wide-field Filtering)技术对图像进行先验增强,可有效抑制背景干扰、强化边缘响应、突出结构轮廓,从而在物理分辨率不变的前提下提升感知质量。
- 优点:在RCAN中使用经宽场滤波处理的GT图像训练模型,不仅能够加速模型收敛,还显著提升了模型在细粒度结构重建上的表现力,尤其适用于显微图像或低对比度场景下的图像增强。
- 缺点:此外,UNet类模型由于其U型结构和跳跃连接机制,天生具有较强的全局上下文建模能力,能够在一定程度上抑制颗粒状伪影(grain noise)。虽然仍会受到水波纹(ripples)、钟形响应(ringing)及边缘过渡异常的影响,但通过图像扩展(padding)与裁剪(cropping)机制,可在模型推理后期进行有效修正,进一步提升重建图像的稳定性和真实性。