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個維度。

廣告

© . All rights reserved.