2017年4月27日

科學影像的處理與分析②─活用ImageJ軟體

作者/簡志祥,新竹市光華國中教師,喜歡各種與生物相關的人事物,日常生活裡平淡無奇的事物,在他眼中都蘊含了許多科學原理,他的興趣從屍體、便當到電子電路。

現今有許多自動的圖形處理軟體,許多社交平台如Facebook、Google或Instagram 等還會自動處理照片。但你是否有想過,自己來處理照片?坊間雖然也有許多軟體可以讓你來處理影像,有付費的專業軟體,也有免費而功能簡單的軟體。但有時候廠商開發的功能可能會不符合你的需求,或是不懂如何操作。若能了解電腦是如何解讀與處理影像,將有助於你了解這些軟體,你也會更了解影像科技。本文藉由介紹一個強大又免費的影像分析軟體——ImageJ,希望讀者能藉由學習這個軟體,並自行操作,從中得到影像處理的樂趣。

ImageJ是一套人人可自由下載並免費使用,是架構在Java平台上的開放原始碼軟體,不管用微軟或蘋果的作業系統都可以執行,且與一般影像分析軟體不同之處在於允許使用者自行用Java撰寫外掛程式(plugins)或由內建的編輯器撰寫巨集來擴充功能。目前ImageJ官網上已經有超過500種由眾多使用者開發的外掛程式,皆可自由下載取得,此外也有人開發出一個稱為Fiji的專案,名稱來源是「Fiji is just ImageJ」。它已經將許多科學分析相關的套件與ImageJ整合在一起,並提供自動更新的功能。各位朋友若有興趣學習 ImageJ,建議可以用Fiji來學習,省去再去搜尋套件安裝的時間。

圖一:左圖為數字與顏色的對照表,每個數字對應一種顏色。右圖是將這些數字依照左圖的規則填入顏色,即可呈現一隻小鳥的樣子。(作者提供)
圖二:右圖的數字與圖一相同,但使用不同的顏色規則時,則可以畫出不同顏色的鳥。(作者提供)

認識數位圖形——用數字格子畫小鳥
在開始進入ImageJ的處理之前,我們先透過一個動筆繪圖的遊戲,藉此來了解數位影像的基本知識。圖一左是一張規則表,數字從0~255,每一個數字對應一種顏色,數字越小顏色就越黑,數字越大顏色就越白,由黑到白中間的數字則是不同深淺程度的灰色。如果我們按照圖一左的規則表將圖一右的數字塗色,就會看到一隻鳥。

如果我改用彩色筆來作畫的話,就需要另訂顏色的規則,如圖二左這個新的規則表,每個數字對應一種顏色,只要用這個規則,就可以畫出成圖二右這隻彩色的鳥。依據不同的顏色規則,可以畫出不同顏色的鳥,即使我們用的都是同一張數字表格。

如果想要更多一點的顏色,就需要更大張的顏色規則表,真實世界裡可以設計一張有1000種顏色的規則表,也就是10^3種顏色。但是電腦的世界是二進位的,一個位元(bit)只有0與1,所以數位影像裡用的規則表,顏色數量是2的n次方,就像256色是2^8。那這回我們就用2^24種顏色(16777216種)!由於顏色這麼多,因此要用特別的設計來表示它,理解它需要用到國中理化學到的知識——光的三原色。想像一下你手邊有紅綠藍3種顏色的手電筒,而這手電筒上有旋鈕可以讓你微調光線的強弱。你用一點點的紅光,加上一點點的綠光,就會組合出黃光;如果紅光再多一些,光就會看起來比較橘。如果3種光都開到最強,那麼白光就出現了,而3種光都關起來,那就成了黑色。現在把我們的表格裡改成3組數字,依序代表紅、綠、藍三色光的亮度,由於紅、綠、藍三色各有256種的亮度,所以就有256×256×256種組合。比方說,格子裡寫著(174  25  30),你就把紅光手電筒強度轉到174,綠光轉到25,藍光轉到30。

圖一與圖二其實就是數位影像顯示色彩的幾種方式。圖一情況只有灰階的256色,這種影像稱為「8-bit」影像,或稱為8位元影像;彩色的256色就是「8-bit Color」。而如果是用紅(Red)、綠 (Green)、藍(Blue)3組數字組合,那就是24-bit,或稱為24位元,在ImageJ裡的名字是「RGB Color」。除此之外,也有「16-bit」、「32-bit」不同的類型,位元數愈高,能表現的色彩愈細緻。

圖一、圖二中的顏色規則表,在ImageJ裡稱為LUT(Look Up Table),而在其他影像處理軟體可能被稱為調色盤。LUT代表用來查資料的表,決定數字代表的顏色。而圖一和圖二中的每個格子就代表一個像素,剛看到的小鳥圖就相當於20×20個像素,也就是400像素的圖片。如果相機的規格是1200萬像素,拍下的影像可能是 4000×3000個像素。當影像用愈多像素來儲存,畫面就會愈細緻。但是像素越多就需要越多的儲存空間,因此儲存數位影像時需要進行壓縮來節省空間。

JPG就是常見的一種壓縮影像的格式,它進行的是肉眼不易察覺的破壞性壓縮,相機的照片儲存也常用 JPG格式。破壞性壓縮雖然可以使檔案變小,但是會讓原有的資訊改變,也就是失真。各位可以嘗試透過 ImageJ 開啟一張圖片,再存成 JPG 檔。圖三左以JPG格式儲存為右圖之後,肉眼檢查雖然看不出有什麼差異,但是如果你仔細比較兩個格子內的數值,兩張圖的像素數值已經有很多不同了。因此影像如果要拿來分析,最好就不要儲存為JPG檔,建議可以存為 TIFF 檔。它是非破壞的檔案格式,圖像格式支援1 位元、8位元、16位元、32位元或RGB 彩色圖像,同時也支援堆疊影像,這也是ImageJ預設的檔案儲存格式。
......【更多內容請閱讀科學月刊第569期】

沒有留言: