- Java 数字图像处理
- 数字图像处理 - 首页
- 数字图像处理 - 简介
- 数字图像处理 - Java BufferedImage 类
- 数字图像处理 - 图像下载与上传
- 数字图像处理 - 图像像素
- 数字图像处理 - 灰度化转换
- 数字图像处理 - 增强图像对比度
- 数字图像处理 - 增强图像亮度
- 数字图像处理 - 增强图像锐度
- 数字图像处理 - 图像压缩技术
- 数字图像处理 - 添加图像边框
- 数字图像处理 - 图像金字塔
- 数字图像处理 - 基本阈值分割
- 数字图像处理 - 图像形状转换
- 数字图像处理 - 高斯滤波器
- 数字图像处理 - 方框滤波器
- 数字图像处理 - 腐蚀与膨胀
- 数字图像处理 - 水印
- 数字图像处理 - 卷积理解
- 数字图像处理 - Prewitt 算子
- 数字图像处理 - Sobel 算子
- 数字图像处理 - Kirsch 算子
- 数字图像处理 - Robinson 算子
- 数字图像处理 - Laplacian 算子
- 数字图像处理 - 加权平均滤波器
- 数字图像处理 - 创建缩放效果
- 数字图像处理 - 开源库
- 数字图像处理 - OpenCV 简介
- 数字图像处理 - OpenCV 灰度化转换
- 数字图像处理 - 颜色空间转换
- 数字图像处理 有用资源
- 数字图像处理 - 快速指南
- 数字图像处理 - 有用资源
- 数字图像处理 - 讨论
Java 数字图像处理 - 开源库
在本章中,我们将探讨一些广泛使用的免费图像处理库,这些库可以轻松地集成到项目中。这些库包括:
- ImageJ
- Fiji
- Commons Imaging
- ImageMagick
- Endrov
- LeadTools
- OpenCv
ImageJ
ImageJ 是一个公共领域的 Java 图像处理程序,其灵感来自于 Macintosh 上的 NIH Image。它可以显示、编辑、分析、处理、保存和打印 8 位、16 位和 32 位图像。
ImageJ 的一些基本功能如下所述:
序号 | 功能与描述 |
---|---|
1 |
随处运行 ImageJ 使用 Java 编写,这使得它可以在 Linux、Mac OS X 和 Windows 上运行,并且支持 32 位和 64 位模式。 |
2 |
开源 ImageJ 及其 Java 源代码是免费提供的,并且属于公共领域。 |
3 |
工具包 使用 ImageJ 作为图像处理工具包(类库)来开发小程序、servlet 或应用程序。 |
4 |
数据类型 8 位灰度或索引颜色、16 位无符号整数、32 位浮点数和 RGB 颜色。 |
5 |
文件格式 打开和保存 GIF、JPEG、BMP、PNG、PGM、FITS 和 ASCII。打开 DICOM。使用 URL 打开 TIFF、GIF、JPEG、DICOM 和原始数据。 |
6 |
选择 创建矩形、椭圆形或不规则区域选择。创建线和点选择。 |
7 |
图像增强 支持对 8 位灰度和 RGB 彩色图像进行平滑、锐化、边缘检测、中值滤波和阈值处理。 |
8 |
颜色处理 将 32 位彩色图像拆分为 RGB 或 HSV 分量。将 8 位分量合并为彩色图像。 |
Fiji
Fiji 是一个图像处理软件包。它可以被描述为 ImageJ(和 ImageJ2)以及 Java、Java3D 和许多插件的组合,这些插件被组织成一个连贯的菜单结构。Fiji 与 ImageJ 的关系类似于 Ubuntu 与 Linux 的关系。
除了 ImageJ 的基本功能外,Fiji 的一些高级功能如下所述:
序号 | 功能与描述 |
---|---|
1 |
配准 3D 图像 这涉及弹性对齐和拼接、特征提取、图像稳定器等。 |
2 |
图像分割 它提供了 35 多种类型的分割方法。 |
3 |
有用的键盘快捷键 Fuji 拥有许多键盘快捷键。 |
4 |
脚本编写 允许使用宏、JavaScript、JRuby、Jython、Clojure 和 Beanshell 进行脚本编写。 |
5 |
开发插件 使用脚本编辑器开始开发插件,然后运行插件。 |
6 |
ImageJ 技巧 ImageJ 易于使用,但有时您希望使用一些实际上已实现的功能,但您不知道如何触发。 |
Commons Imaging
Apache Commons Imaging,以前称为 Apache Commons Sanselan,是一个库,可以读取和写入各种图像格式,包括快速解析图像信息(如大小、颜色、空间、ICC 配置文件等)和元数据。
ImageJ 的一些基本功能如下所述:
序号 | 功能与描述 |
---|---|
1 |
Java Apache Commons Imaging 使用 100% 纯 Java 编写。它可以在任何 JVM 和任何平台上运行,无需修改。 |
2 |
图像格式 它读取和写入各种图像格式,并支持其他所有或大多数库都忽略的一些变体和编码。 |
3 |
元数据支持 它支持以结构化的方式读取和写入各种元数据,包括 EXIF 元数据。 |
4 |
网络友好 它对网络友好。Commons Imaging 只读取它需要的数据,并缓存已读取的数据,因此它不会给网络带来太大的负担。 |
5 |
易于使用 它设计得非常易于使用。它具有简单、清晰的界面。大多数操作都是单个 Imaging 方法调用。 |
6 |
透明 Commons Imaging 旨在保持透明。没有隐藏的缓冲区需要释放,没有本机内存需要释放,也没有后台线程。 |
7 |
开源 它是免费软件/开源软件。它在 Apache 软件许可证下可用。 |
8 |
颜色转换 ColorConversions 类提供方法在以下颜色空间之间进行转换:CIE-L*CH、CIE-L*ab、CIE-L*uv、CMY、CMYK、HSL、HSV、Hunter-Lab、RGB、XYZ 和 YXY。 |
ImageMagick
ImageMagick 是一个用于创建、编辑、合成或转换位图图像的软件套件。它可以读取和写入 100 多种格式的图像,包括 DPX、EXR、GIF、JPEG、JPEG-2000、PDF、PNG、Postscript、SVG 和 TIFF。使用 ImageMagick 可以调整图像大小、翻转、镜像、旋转、扭曲、剪切和变换图像,调整图像颜色,应用各种特殊效果,或绘制文本、线条、多边形、椭圆和贝塞尔曲线。
ImageMagick 的一些基本功能如下所述:
序号 | 功能与描述 |
---|---|
1 |
格式转换 它将图像从一种格式转换为另一种格式(例如,PNG 到 JPEG)。 |
2 |
变换 它可以调整图像大小、旋转、裁剪、翻转或修剪图像。 |
3 |
透明度 它使图像的某些部分不可见。 |
4 |
绘制 它向图像添加形状或文本。 |
5 |
装饰 它向图像添加边框或框架。 |
6 |
特殊效果 它可以模糊、锐化、阈值化或着色图像。 |
7 |
动画 它可以从一组图像创建 GIF 动画序列。 |
8 |
合成 它可以将一个图像叠加在另一个图像上。 |
9 |
形状形态 它提取特征、描述形状并在图像中识别模式。 |
10 |
加密或解密图像 它将普通图像转换为难以理解的乱码,然后再转换回来。 |
Endrov
Endrov 是一个多用途的图像分析程序。它是独立编写的,旨在解决其他免费软件和许多商业软件包的许多缺点。
Endrov 的一些基本功能如下所述:
序号 | 功能与描述 |
---|---|
1 |
查看数据 它以 2D 和 3D 方式查看数据。旨在处理复杂的 4D 数据方案和无限数量的通道,其中每个通道可以具有自己的 X、Y 和 Z 分辨率。 |
2 |
注释图像 它自动或手动注释图像,以理解图像并获取统计信息。 |
3 |
撤销和重做 它可以对所有操作进行撤销和重做。 |
4 |
惰性求值 它从一开始就被设计用于处理大型图像集。Endrov 使用惰性求值,这主要在研究编程语言中可用。 |
5 |
脚本语言 它支持图形化脚本语言以及传统脚本语言。 |
6 |
Java 使用 Java 编写。插件架构允许使用新的 Java 插件轻松扩展。它可以与 Matlab 交互。 |
7 |
格式 它使用 Bio-formats 访问几乎所有商业和开放文件格式。 |
8 |
显微镜处理 它可以使用一个程序控制所有显微镜,并进行实时图像分析。 |
LEADTOOLS
LEADTOOLS 在多个类别中提供了 200 多个图像处理功能,包括文档清理、医学图像增强、颜色转换和校正、降噪、边缘检测等等。
LEADTOOLS 的一些基本功能如下所述:
序号 | 功能与描述 |
---|---|
1 |
扫描文档图像处理 这套强大的功能可以读取扫描文档中的人工制品和瑕疵,例如打孔、倾斜角度、边框、灰尘斑点等等。 |
2 |
医学图像处理 通过平移、选择、减去和去除背景来增强图像或突出细节,以获得更好的视觉效果。 |
3 |
几何变换 这些功能可用于清理、对齐、校正图像或应用艺术 3D 效果。 |
4 |
亮度和对比度 这些功能可用于增强图像、应用艺术效果或帮助医学图像的诊断评估。 |
5 |
颜色空间转换 它们可以为单线程和多线程应用程序(包括 IIS 和 Windows WF 托管应用程序)添加图像颜色空间功能。 |
6 |
颜色校正 这些功能用于校正颜色通道交换、平衡颜色强度或执行各种图像分析任务的图像。 |
7 |
图像增强 这些功能用于校正摄影中常见的错误,例如红眼和颜色不平衡,以及帮助医学图像的诊断评估。 |
8 |
感兴趣区域 这些功能用于在图像中创建和修改感兴趣区域,以便对图像的特定部分执行图像处理功能,节省条形码和 OCR 识别的时间,或执行各种图像分析任务。 |
OpenCV
OpenCV 在 BSD 许可证下发布,因此它可以免费用于学术和商业用途。它具有 C++、C、Python 和 Java 接口,并且支持 Windows、Linux、Mac OS、iOS 和 Android。OpenCV 旨在提高计算效率,并着重于实时应用程序。使用优化的 C/C++ 编写,该库可以利用多核处理。
OpenCV的一些基本功能简要描述如下:
序号 | 功能与描述 |
---|---|
1 |
图像平滑 这包括应用模糊、高斯模糊、中值模糊和双边滤波。 |
2 |
腐蚀和膨胀 它可以应用两种非常常见的形态学运算符:膨胀和腐蚀。 |
3 |
形态学变换 OpenCV函数morphologyEx用于应用形态学变换,例如开运算、闭运算、顶帽运算和黑帽运算等。 |
4 |
图像金字塔 OpenCV函数pyrUp和pyrDown用于对给定图像进行下采样或上采样。 |
4 |
基本的阈值操作 使用OpenCV函数threshold执行基本的阈值操作。 |
5 |
为图像添加边框 OpenCV函数copyMakeBorder用于设置边框(图像的额外填充)。 |
7 |
重新映射 在OpenCV中,函数remap提供了一个简单的重新映射实现。 |
8 |
直方图计算 为了简单起见,OpenCV实现了函数calcHist,该函数计算一组数组(通常是图像或图像平面)的直方图。它最多可以操作32个维度。 |