imageJ二次开发之旅 – imageJ开源项目介绍

简介: imageJ二次开发之旅 – imageJ开源项目介绍

imageJ二次开发之旅 – imageJ开源项目介绍

imageJ起源:

imageJ项目最初是由NIH(NationalInstitutes of Health,美国国家卫生研究院)在1997发起的,其目的是提供一个跨平台、高效、稳定可运行的Java图像处理工具。经过多年发展在imageJ的基础上已经孕育出多个分支开源项目包括imageJ1.x、imageJ2.x、Fiji等成功的开源项目,

imageJ的产生是地地道道的一个人的项目产物。最初的开发者只有一个人Wayne Rasband,他为美国国家卫生研究院做了40年的码农,此君已经于2010退休了。而imageJ则通过开源社区不断贡献出新插件从而功能更加的丰富、实用性更强,已经获得一大批的忠实用户与追随者。




ImageJ项目特征:


ImageJ能够走到今天,得到图像处理开发者认可与使用,主要原因在于开放源代码与插件机制,其中imageJ的插件机制允许开发者自己开发相关算法并集成到已经存在的imageJ应用程序中,这样就减轻了算法开发者的工作量同时避免了很多重复劳动。另外一个重要机制就是宏(macros),通过宏机制,根据脚本语言,imageJ就可以借助分布式计算发挥Java跨平台的强大运算能力,特别适合处理大型多维图像。此外imageJ由于是早期的Java语言开发GUI都是借助于awt组件完成,跟现在的java swing有点格格不入,所以imageJ迁移到GitHub上之后有产生了imagej-swing的项目分支。如果GUI都能换成swing的,我相信imageJ将会在更多的项目中得到集成运用。imageJ项目主页:http://imagej.net/Home。同时ImageJ支持多种图像格式文件的IO读写,是一个非常好的图像文件读写支持库。所以imageJ主要特征可以总结如下:


-         基于插件机制调用所有的图像处理算法程序,实现了UI层与算法计算的分离


-         强大的插件功能与宏脚本定义功能


-         基于AWT的GUI库。


-         支持几乎所有常见的图像格式IO读写



imageJ源代码下载与运行


访问地址https://github.com/imagej选择ImageJA主页之后选择downloadzip即可,如果你已经安装Eclipse4.0以上版本,就可以选择maven项目之后直接导入解压缩的源代码即可,在IDE中直接运行ij包下的ImageJ.java即可。显示出现的界面如下:


点击文件菜单打开一张图像,显示如下:


选择[Process]->[Filters]-[Gaussian Blur](高斯模糊),弹出高斯参数输入对话框,直接按确认即可得到模糊之后的图像如下:

完整的导入工程目录结构如下:

相关文章
TortoiseSVN安装使用教程(超详细)
TortoiseSVN安装使用教程(超详细)
13130 58
|
机器学习/深度学习 移动开发 TensorFlow
深度学习之格式转换笔记(四):Keras(.h5)模型转化为TensorFlow(.pb)模型
本文介绍了如何使用Python脚本将Keras模型转换为TensorFlow的.pb格式模型,包括加载模型、重命名输出节点和量化等步骤,以便在TensorFlow中进行部署和推理。
562 0
|
Java 调度
HashMap为什么会死循环?
本文分析了在Java中HashMap导致死循环的原因,主要由于在JDK 1.7及之前版本中,多线程环境下进行扩容操作时,头插法导致的链表反转,以及线程调度问题,从而形成循环链表。
1449 1
HashMap为什么会死循环?
|
调度 开发者
【Freertos基础入门】2个Freertos的Delay函数
【Freertos基础入门】2个Freertos的Delay函数
2352 1
|
SQL XML Java
excel转sql小工具
该工具用于将Excel数据转换为SQL INSERT语句,便于历史数据迁移到新数据库。通过配置文件定义Excel表头与数据库字段的映射关系,并支持默认值设置及spEL表达式。主要依赖包括EasyExcel读取Excel,以及Lombok、Hutool等辅助工具。项目包含`Excel2SqlUtils.java`和`Excel2SqlListener.java`两个核心类,前者负责加载配置文件,后者实现数据读取与SQL语句生成。配置文件`model.yml`定义了具体的映射规则。
666 1
|
JSON 编解码 安全
【HTTP】方法(method)以及 GET 和 POST 的区别
【HTTP】方法(method)以及 GET 和 POST 的区别
554 1
|
Java 编译器 程序员
JVM常见面试题(一):JVM是什么、由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别
JVM常见面试题(一):JVM是什么、由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别
JVM常见面试题(一):JVM是什么、由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别
|
Ubuntu 安全 网络协议
|
XML 数据可视化 算法
目标检测YOLO数据集的三种格式及转换
目标检测YOLO数据集的三种格式及转换