Fiji —— 基于 imageJ 的免费且开源的图像处理软件

打印 上一主题 下一主题

主题 1832|帖子 1832|积分 5496


一、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】https://fiji.sc/
  • Fiji 拥有数千个插件:https://imagej.net/list-of-extensions!
  1.2、源码下载

   

  • 【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
   
  1. 错误提示如下:
  2. Exception in thread "main" java.lang.NoClassDefFoundError: io/scif/SCIFIOService
  3.         at net.imagej.ImageJ.<init>(ImageJ.java:75)
  4.         at sc.fiji.Main.main(Main.java:50)
  5. Caused by: java.lang.ClassNotFoundException: io.scif.SCIFIOService
  6.         at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
  7.         at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
  8.         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
  9.         at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  10.         ... 2 more
复制代码
  官方:我们致力于开源。开源不光允许其他开发人员将应用步伐移植到原作者未曾想到的新平台上,还允许科学家研究代码以相识所用算法的内部工作原理,并允许其他人以全新的方式利用该步伐,并以全部可以想象的方式对其举行改进。
  二、功能详解

2.0、Fiji - ImageJ(Web应用步伐)

   Fiji - ImageJ(Web应用步伐):https://ij.imjoy.io
  

2.1、常用功能(汇总)

   详细功能介绍请点击 Fiji - Help 或在 search 窗口中输入功能名称。
  以下是利用过程中的常用功能,由于 Fiji 集乐成能非常巨大,仅供参考。
  1.         功能                        操作步骤                                                                                                快捷键
  2. """
  3.         加载超大内存图像        Fiji - File + Import + TIFF Virtual Stack
  4.         保存图像                        Fiji - File + Save as + TIFF/Image Sequence
  5.         保存Screenshot                                                                                                                Ctrl + Shift + G
  6.         查看三视图                                                                                                                        Ctrl + Shift + H
  7.         绘制直方图                                                                                                                        Ctrl + H
  8.         截取图像                        Fiji - 绘制矩形框 + 鼠标右键 + Duplicate + Range(3D)
  9. Image
  10.         数据类型转换                Fiji - Image + Type
  11.         对比度调整                Fiji - Image + Adjust + Brightness/Contrast                        Ctrl + Shift + C
  12.         灰度阈值分割                Fiji - Image + Adjust + Threshold                                        Ctrl + Shift + T
  13.         最大强度投影                Fiji - Image + Stacks + Z Project + Max Intensity
  14.         切换观察视角                Fiji - Image + Stacks + Reslice + Start at
  15. Process
  16.         轮廓提取                        Fiji - Process + Find Edges
  17.         去除背景                        Fiji - Process + Subtract Background
  18.         直方图均衡化                Fiji - Process + Enhance Contrast
  19.         添加噪声                        Fiji - Process + Noise + 随机噪声/高斯噪声/椒盐噪声
  20.         gamma值调整                Fiji - Process + Math + Gamma
  21.         FFT                                Fiji - Process + FFT + FFT or Inverse FFT
  22.         高斯滤波                        Fiji - Process + Filters + Gaussian Blur - sigma(Radius)
  23. Analyze
  24.         绘制信号分布图        Fiji - 绘制矩形框 + Analyze + Plot Profile                        Ctrl + K
  25.         同步窗口                        Fiji - Analyze + Tools + Synchronize Windows
  26.         同步ROI                        Fiji - 绘制矩形框 + T
  27. Plugins(插件)
  28. """
复制代码
2.2、高级功能

(0)一种基于梯度分布的图像清楚度测量方法 —— 半高宽

   锐度(Sharpness):是指图像中边缘的清楚度和细节的可见性,通常由对比度厘革的速率和 高频信息的丰富程度共同决定。图像的锐度可以通过像素灰度值的梯度厘革来衡量:
  

  • 锐度高:(1)边缘清楚,细节丰富;(2)梯度大,灰度值厘革快;(3)高频成分多
  • 锐度低:(1)边缘含糊,丢失细节;(2)梯度小,灰度值厘革慢;(3)高频成分少
    一种基于梯度分布的图像清楚度测量方法,通过半高宽(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。因此上图比下图的图像质量更高,更清楚。
  

(1)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
    分支信息(分支长度、起点终点、两点间欧氏隔断),骨架中检测到的树的总体信息(分支和分支点数量、分支均匀长度等)
  

  (2)Fiji - Analyze - Analyze Particles:自动计数

ImageJ 底子篇 | 基于阈值分割的自动细胞计数
作用:用于对二值或阈值图像中的对象举行计数和测量(即:连通区域的区域数量)
备注:2D算法,支持2D和3D。
(1)打开图像:File - Open,或者将图片直接拖动到菜单栏
(2)阈值分割:Fiji - Image - Adjust - Threshold
(3)弥补空隙:Fiji - Process - Binary - Fill holes
(4)分水岭算法(分割重叠细胞):Fiji - Process - Binary - Watershed
(5)自动计数:Fiji - Analyze - Analyze Particles
备注:阈值分割决定了细胞计数效果
   

  • Size:300-Infinity——指分析颗粒面积大于300(这里的单位是pixel),不停到无穷大的颗粒。(根据细胞巨细,以及效果好坏来更改)
  • Circularity:0.00-1.00——指圆度,可以根据细胞形状,调整必要的圆度,1.00为标准圆。
  • Exclude on edges——处于边缘的颗粒不计入
  

  (3)Fiji - Plugins - 3D Viewer:3D渲染(支持简朴动画)


(4)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 差别,动画不是基于关键帧的,而是由基于天然语言的语法形貌的。
  

  • 安装教程:Fiji - Help - Update - Manage update sites - Check the box in front of 3Dscript - Apply and Close - Apply changes - Restart Fiji
  

  1. From frame 0 to frame 180:
  2. - rotate by 180 degrees horizontally ease-in-out
  3. - zoom by a factor of 0.25
  4. - zoom by a factor of 1.5
  5. From frame 50 to frame 350:
  6. - rotate by 270 degrees vertically around (0, 0, 1)
复制代码
(5)Fiji - Plugins - labkit:显微镜图像分割

Fiji - labkit(官网介绍 + 视频教程):用于显微镜 2D 或 3D 图像的手动和自动分割
   细胞分割效果较好,脑图像分割效果较差(必要精调)

  (6)Fiji - Plugins - Cellpose:基于深度学习的细胞分割方法

基于预训练模子(cellpose提供基于细胞质、细胞核等七个差别数据集训练得到的模子),然后在自己的数据集上猜测,并手动标记ROI举行模子微调。
   只适用于细胞分割(细胞质、细胞核),不适用于神经元分割(如下图)
  


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

河曲智叟

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表