5 个最好的 Java 图像处理库
本文介绍了 Java 中五个最好的图像处理库。
5 个最好的 Java 图像处理库
Java 中提供了相当多的图像处理库可以用于图像处理。 有些库是付费的,有些是开源的; 我们选择了 5 个可用于 Java 图像处理的最佳开源库。
1. OpenCV
OpenCV 是跨多种编程语言的图像处理或计算机视觉最常用的库之一。 OpenCV 遵循 BSD 许可证,可免费用于商业和学术用途。
除了Java之外,OpenCV还支持C++、C和Python语言,并且可以在Windows、Linux、macOS、Android和iOS等操作系统上实现。
OpenCV 还可以利用多处理,因为它是用优化的 C/C++ 编写的。 下表描述了该库的一些主要功能。
功能|描述 Eroding 和 Dilating | OpenCV 可以应用两种最广泛使用的形态学操作:Eroding 和 Dilating。 形态学变换 | OpenCV 有一个形态学方法,它应用形态学变换,如开、闭、BlackHat、Tophat 等。 平滑图像 | OpenCV 可以应用图像平滑操作,如模糊、中值模糊、高斯模糊和双边滤波器。 图像金字塔 | OpenCV 有像pyrUp 和pyrDown 这样的方法来对图像进行上采样和下采样。 重新映射 | OpenCV 有方法 remap(),它执行简单的重新映射操作。 直方图计算 | OpenCV 有 calcHist 方法来生成动态直方图。 为图像添加边框 | OpenCV 方法 copyMakeBorder 可用于为图像添加边框。
2. ImageJ
ImageJ 是另一个著名的使用 Java 进行图像处理的库。 该库可以编辑、分析、显示、处理、打印和保存 8、16 和 32 位图像。
以下是该库的主要功能。
功能 | 描述 |
---|---|
兼容所有操作系统 | ImageJ 基于 Java 构建,可以在每个操作系统上运行。 |
工具包 | ImageJ 提供了一个工具包,可用于开发图像处理小程序、servlet 或应用程序。 |
数据类型 | ImageJ 提供 RGB 颜色、8 位灰度和颜色、16 位无符号整数和 32 位浮点数据类型。 |
选择 | ImageJ 可以创建线和点选择以及矩形、椭圆形或不规则区域选择。 |
文件格式 | ImageJ 可以打开和保存 JPEG、GIF、PNG、BMP、PGM、FITS 和 ASCII 格式,并使用 URL 打开 GIF、TIFF、JPEG、DICOM 和原始数据。 |
颜色处理 | ImageJ 可以将图像分割为 32 位图像的 RGB 或 HSV 分量,并将 8 位分量合并为彩色图像。 |
图像增强 | ImageJ 为灰度和 RGB 图像提供平滑、锐化、中值滤波、边缘检测和阈值处理等操作。 |
3. Fiji
Fiji是一个基于ImageJ、ImageJ2、Java、Java 3D和许多其他插件的图像处理包。 Fiji可以被认为是ImageJ库的接口; 让我们看看这个包的一些主要功能。
功能 | 描述 |
---|---|
配准 3D 图像 | Fiji 提供弹性对齐、特征提取、蒙太奇、图像稳定器等操作来配准 3D 图像。 |
图像分割 | Fiji提供 35 种图像分割类型。 |
Scripting | Fiji 提供了允许在 JRuby、Jython、JavaScript、Clojure 和 Beanshell 中使用宏编写脚本的功能。 |
键盘快捷键 | Fiji提供了许多有用的键盘快捷键。 |
ImageJ Tricks | Fiji 为 ImageJ 库提供了更多功能。 |
开发插件 | Fiji 提供了一个脚本编辑器来开发插件。 |
4. Apache Commons Imaging
Apache Commons 提供了很多功能,图像处理就是其中之一。 它可用于读取、写入和解析图像。
以下是 Apache Commons 图像处理的主要功能。
功能 | 描述 |
---|---|
用 Java 构建 | Apache Commons 完全用 Java 语言构建。 |
元数据支持 | Apache Commons 提供以结构化方式读写元数据的功能。 |
图像格式 | Apache Commons 支持多种图像格式,甚至其他库不支持的图像格式。 |
网络友好 | Apache Commons 非常网络友好,因为它只读取它需要的数据,因此对网络的影响很小。 |
透明 | Apache Commons 非常透明; 它没有像其他库一样有隐藏的缓冲区来处理后台线程。 |
颜色转换 |
Apache Commons 提供了一个颜色转换类,可以在 CIE-L*ab 、CIE-L*CH 、CIE-L*uv 、Hunter-Lab 、CMYK 、CMY 、HSV 、HSL 、RGB 、XYZ 之间转换颜色空间 和 YXY。 |
5. LEADTOOLS
LEADTOOLS 是一个 Java 图像处理库,提供了很多功能,如文档清理、医学图像增强、边缘检测、颜色转换和校正、降噪等。让我们看看这个库的主要功能。
功能 | 描述 |
---|---|
医学图像处理 | LEADTOOLS 是 Java 最好的医学图像处理库之一。 |
扫描文档图像处理 | LEADTOOLS 提供了一些强大的功能来读取扫描文档; 它可以检测缺陷和伪影,例如穿孔、灰尘斑点、倾斜角度等。 |
亮度和对比度 | LEADTOOLS 提供增强图像、帮助医学图像诊断评估或应用艺术效果的功能。 |
几何变换 | LEADTOOLS 提供校正图像、应用干净的艺术 3D 效果或对齐的功能。 |
颜色校正 | LEADTOOLS 提供通过颜色校正来校正图像、平衡颜色强度或执行其他图像分析任务的功能。 |
色彩空间转换 | LEADTOOLS 提供将图像色彩空间添加到单线程和多线程应用程序的功能。 |
图像增强 | LEADTOOLS 提供纠正摄影常见错误的功能,例如色彩不平衡或红眼。 它还提供医学图像处理的诊断评估。 |
相关文章
在 Java 中测试私有方法
发布时间:2023/08/07 浏览次数:52 分类:Java
-
This tutorial will discuss how to test the private method in Java.私有方法是外部无法访问的方法,这意味着外部无法调用它。 它仅适用于类的内部元素。在Java中测试私有方法 假设我们有一个如下所示的类需
用Java解析HTML
发布时间:2023/08/07 浏览次数:70 分类:Java
-
本文讨论如何解析 HTML 文件。 此外,我们将通过提供必要的示例和解释来讨论该主题,以使该主题更容易。Jsoup 在 Java 中的工作
Java Lang Runtime Java 中的 exec() 方法
发布时间:2023/08/07 浏览次数:85 分类:Java
-
本文介绍了 Java 的 Runtime.exec() 方法。Java Lang Runtime Java 中的 exec() 方法 Java Lang Runtime 类用于每个 Java 应用程序与类运行时实例和环境接口之间的交互。
控制 java.io.tmpdir 的环境变量
发布时间:2023/08/07 浏览次数:138 分类:Java
-
本文将介绍名为 java.io.tmpdir 的环境变量,它可用于调节 Java 的临时文件目录。Java虚拟机(JVM)可以生成临时文件并将它们存储在java.io.tmpdir系统参数指定的目录中。
Java 中的 Zulu
发布时间:2023/08/07 浏览次数:57 分类:Java
-
Zulu 是 Java 11 的一部分。它受到广泛的操作系统和硬件平台的支持。如何在 Java 中安装 Zulu 首先,从 Azul 的官方下载页面下载必要的 ZIP 或 TAR.GZ。
在 Java 中使用 Mockito 模拟静态方法
发布时间:2023/08/07 浏览次数:180 分类:Java
-
本文介绍了如何使用mockito来模拟Java中的静态方法。Java 中的模拟静态方法 在 Java 中执行单元测试时需要模拟静态方法。
JVM -XSS 选项
发布时间:2023/08/07 浏览次数:141 分类:Java
-
-Xss 标志主要用于更改 JVM 堆栈的大小。 让我们看一下下面的命令,通过这些命令我们可以更改 JVM 堆栈的大小。使用 -Xss 更改 JVM 堆栈的大小
Java - 在方法参数中使用 Nullable 注注解
发布时间:2023/08/07 浏览次数:181 分类:Java
-
本文简要讨论 @Nullable 注解,并通过代码示例演示其在方法参数中的使用。@Nullable 注解及其在方法参数中的使用 @Nullable 注释允许您创建可以返回 null 值的方法调用。