2011年6月1日

用Imagej計算各顏色的像素數目

先前在blog寫過用ImageJ作色彩面積分析之後,有讀者寫信來問「我想要用ImageJ來要做出紅色、黃色、綠色等的面積比例圓餅圖要怎麼作?」


其實上述那樣的問題解決流程,應該分成數步來作。首先是定義問題,電腦不知道什麼叫做黃色、紅色,它知道的是RGB值或是HSL值那樣量化的數值,而且它也不會作圓餅圖,所以上面那個問題,就該被轉換成「如何用ImageJ分析圖中各種RGB值顏色的像素數量

有了各種顏色的像素數量之後,要作圓餅圖、折線圖什麼的圖都也可以了。


下載安裝color counter
因為ImageJ本身沒有計算色彩像素數目的功能,所以得用其他plugin來協助。
color counter就是一個符合這樣需求的plugin。下載 Color_Counter.class 放進安裝imagej的資料夾中的plugins資料夾,然後重新開啟imagej就可以了。


減少顏色為64色
不過color counter有個限制,它只能分析64個顏色而已。它可以告訴你64個顏色中,哪個RGB值有多少個點,但如果圖像超過64種顏色,它就只能告訴你這張圖有多少種顏色。


所以我們得先把圖像的顏色減少到只剩下64色,方法如下:
Image > Type >8 -bit Color
輸入 64之後再轉換回 RGB color
Image > Type >RGB Color


接著再使用color counter來計算,它就會告訴你那64種顏色各有多少個像素。如果你沒有把顏色轉換成64個以下,那麼color counter 只會告訴你這張圖有多少種顏色。

如果分析的目的是要知道各種顏色所佔的面積,那麼就必須知道該圖的比例尺,也就是1像素相當於幾公分或幾公尺,這在拍照的時候,就該把一隻尺或是一個已知長度的物體一起拍下。關於比例尺的設定方式,請在blog裡搜尋set scale。