Java DIP - 开源库


在本章中,我们将探讨一些广泛使用且可以轻松集成到项目中的免费图像处理库。这些库包括 -

  • 图像J
  • 斐济
  • 共享影像
  • 图像魔术师
  • 恩德罗夫
  • 领先工具
  • 开放式CV

图像J

ImageJ 是一个公共领域的 Java 图像处理程序,其灵感来自于 Macintosh 的 NIH Image。它可以显示、编辑、分析、处理、保存和打印8位、16位和32位图像。

ImageJ 的一些基本功能描述如下 -

先生。 特点及描述
1

到处跑

ImageJ 是用 Java 编写的,这使得它可以在 Linux、Mac OS X 和 Windows 上以 32 位和 64 位模式运行。

2

开源

ImageJ 及其 Java 源代码可免费获取并属于公共领域。

3

工具包

使用 ImageJ 作为图像处理工具包(类库)来开发 applet、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是一个图像处理包。它可以被描述为 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使用起来很简单,但有时你希望实际实现一些功能,但不知道如何触发。

共享影像

Apache Commons Imaging,以前称为 Apache Commons Sanselan,是一个读取和写入各种图像格式的库,包括快速解析图像信息,如(尺寸、颜色、空间、ICC 配置文件等)和元数据。

ImageJ 的一些基本功能描述如下 -

先生。 特点及描述
1

爪哇

Apache Commons Imaging 是用 100% 纯 Java 编写的。它可以在任何 JVM 和任何平台上执行,无需修改。

2

图像格式

它读取和写入各种图像格式,并支持所有或大多数其他库所遗漏的一些变体和编码。

3

元数据支持

它支持以结构化方式读写各种元数据,包括EXIF元数据。

4

网络友好

它是网络友好的。Commons Imaging 只读取它需要的数据,并缓存读取的数据,以免对网络造成太大负担。

5

便于使用

它的设计非常易于使用。它有一个简单、干净的界面。大多数操作都是单个成像方法调用。

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 是一个用于创建、编辑、合成或转换位图图像的软件套件。它可以读取和写入 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 的一些基本功能描述如下 -

先生。 特点及描述
1

查看数据

它以 2D 和 3D 方式查看数据。设计用于处理复杂的 4D 数据方案和无限数量的通道,其中每个通道可以有自己的 X、Y 和 Z 分辨率。

2

为您的图像添加注释

它自动或手动注释您的图像,以理解它们并获取统计数据。

3

撤消和重做

它可以撤消和重做所有操作。

4

惰性评估

它是专门为处理大型图像集而设计的。Endrov 使用惰性求值,这是一个主要在研究编程语言中使用的概念。

5

脚本语言

它支持图形脚本语言以及传统脚本语言。

6

爪哇

用Java编写。插件架构允许使用新的 Java 插件轻松扩展。它可以与Matlab交互。

7

格式

它使用生物格式访问几乎所有商业和开放文件格式。

8

显微加工

它可以通过一个程序控制所有显微镜并进行即时图像分析。

铅工具

LEADTOOLS 提供多个类别的 200 多种图像处理功能,包括文档清理、医学图像增强、颜色转换和校正、降噪、边缘检测等。

LEADTOOLS 的一些基本功能描述如下 -

先生。 特点及描述
1

扫描文档图像处理

这个强大的功能集合可以读取人工制品和缺陷的扫描文档,例如穿孔、倾斜角度、边框、灰尘斑点等。

2

医学图像处理

通过移动、选择、减去和删除背景来增强图像或突出显示细节,以获得更好的视觉效果。

3

几何变换

这些功能可用于清理、对齐、校正图像或应用艺术 3D 效果。

4

亮度和对比度

这些功能可用于增强图像、应用艺术效果或帮助医学图像的诊断评估。

5

色彩空间转换

他们可以将图像色彩空间功能添加到单线程和多线程应用程序,包括 IIS 和 Windows WF 托管应用程序。

6

色彩校正

这些函数用于校正具有交换颜色通道的图像、平衡颜色强度或执行各种图像分析任务。

7

图像增强

这些功能用于纠正摄影中的常见错误,例如红眼和不平衡的颜色,以及帮助医学图像的诊断评估。

8

感兴趣的区域

这些功能用于创建和修改图像中的感兴趣区域,以对图像的特定部分执行图像处理功能,节省条形码和 OCR 识别的时间或执行各种图像分析任务。

开放式计算机视觉

OpenCV 是在 BSD 许可证下发布的,因此它对于学术和商业用途都是免费的。它具有 C++、C、Python 和 Java 接口,支持 Windows、Linux、Mac OS、iOS 和 Android。OpenCV 专为提高计算效率而设计,并重点关注实时应用程序。该库用优化的 C/C++ 编写,可以利用多核处理。

简要描述了 OpenCV 的一些基本特征 -

先生。 特点及描述
1

平滑图像

这涉及应用模糊、高斯模糊、中值模糊和双边滤波器。

2

腐蚀和膨胀

它可以应用两种非常常见的形态算子 - 膨胀和腐蚀。

3

形态转换

OpenCV 函数morphologyEx 用于应用形态变换,例如开、闭、TopHat 和 BlackHat 等。

4

图像Pyramid

OpenCV 函数pyrUp 和pyrDown 对给定图像进行下采样或上采样。

4

基本阈值操作

使用 OpenCV 函数阈值执行基本阈值操作。

5

为图像添加边框

OpenCV 函数 copyMakeBorder 用于设置边框(图像的额外填充)。

7

重新映射

在 OpenCV 中,函数 remap 提供了一个简单的重映射实现。

8

直方图计算

出于简单的目的,OpenCV 实现了函数 calcHist,该函数计算一组数组(通常是图像或图像平面)的直方图。它最多可以操作 32 个维度。