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