天天看點

imageJ二次開發之旅 – imageJ開源項目介紹

imageJ二次開發之旅 – imageJ開源項目介紹

imageJ起源:

imageJ項目最初是由NIH(NationalInstitutes of Health,美國國家衛生研究院)在1997發起的,其目的是提供一個跨平台、高效、穩定可運作的Java圖像處理工具。經過多年發展在imageJ的基礎上已經孕育出多個分支開源項目包括imageJ1.x、imageJ2.x、Fiji等成功的開源項目,

imageJ二次開發之旅 – imageJ開源項目介紹

imageJ的産生是地道地道的一個人的項目産物。最初的開發者隻有一個人Wayne Rasband,他為美國國家衛生研究院做了40年的碼農,此君已經于2010退休了。而imageJ則通過開源社群不斷貢獻出新插件進而功能更加的豐富、實用性更強,已經獲得一大批的忠實使用者與追随者。

ImageJ項目特征:

ImageJ能夠走到今天,得到圖像處理開發者認可與使用,主要原因在于開放源代碼與插件機制,其中imageJ的插件機制允許開發者自己開發相關算法并內建到已經存在的imageJ應用程式中,這樣就減輕了算法開發者的工作量同時避免了很多重複勞動。另外一個重要機制就是宏(macros),通過宏機制,根據腳本語言,imageJ就可以借助分布式計算發揮Java跨平台的強大運算能力,特别适合處理大型多元圖像。此外imageJ由于是早期的Java語言開發GUI都是借助于awt元件完成,跟現在的java swing有點格格不入,是以imageJ遷移到GitHub上之後有産生了imagej-swing的項目分支。如果GUI都能換成swing的,我相信imageJ将會在更多的項目中得到內建運用。imageJ項目首頁:http://imagej.net/Home。同時ImageJ支援多種圖像格式檔案的IO讀寫,是一個非常好的圖像檔案讀寫支援庫。是以imageJ主要特征可以總結如下:

-         基于插件機制調用所有的圖像處理算法程式,實作了UI層與算法計算的分離

-         強大的插件功能與宏腳本定義功能

-         基于AWT的GUI庫。

-         支援幾乎所有常見的圖像格式IO讀寫

imageJ源代碼下載下傳與運作

imageJ二次開發之旅 – imageJ開源項目介紹

點選檔案菜單打開一張圖像,顯示如下:

imageJ二次開發之旅 – imageJ開源項目介紹

選擇[Process]->[Filters]-[Gaussian Blur](高斯模糊),彈出高斯參數輸入對話框,直接按确認即可得到模糊之後的圖像如下:

imageJ二次開發之旅 – imageJ開源項目介紹

完整的導入工程目錄結構如下:

imageJ二次開發之旅 – imageJ開源項目介紹