Linux 上的科學影象處理

發表於2017-12-04

在顯示你的資料和工作方面我發現了幾個科學軟體,但是我不會涉及太多方面。因此在這篇文章中,我將談到一款叫 ImageJ 的熱門影象處理軟體。特別的,我會介紹 Fiji,這是一款繫結了一系列用於科學影象處理外掛的 ImageJ 軟體。

Fiji 這個名字是一個迴圈縮略詞,很像 GNU 。代表著 “Fiji Is Just ImageJ”。 ImageJ 是科學研究領域進行影象分析的實用工具 —— 例如你可以用它來辨認航拍風景圖中樹的種類。 ImageJ 能劃分物品種類。它以外掛架構製成,海量外掛可供選擇以提升使用靈活度。

首先是安裝 ImageJ (或 Fiji)。大多數的 ImageJ 發行版都可有該軟體包。你願意的話,可以以這種方式安裝它,然後根據你的研究安裝所需的獨立外掛。另一種選擇是安裝 Fiji 的同時獲取最常用的外掛。不幸的是,大多數 Linux 發行版的軟體中心不會有可用的 Fiji 安裝包。幸而,官網上的簡單安裝檔案是可以使用的。這是一個 zip 檔案,包含了執行 Fiji 需要的所有檔案目錄。第一次啟動時,你只會看到一個列出了選單項的工具欄。(圖 1)

圖 1. 第一次開啟 Fiji 有一個最小化的介面。

如果你沒有備好圖片來練習使用 ImageJ ,Fiji 安裝包包含了一些示例圖片。點選“File”->“Open Samples”的下拉選單選項(圖 2)。這些示例包含了許多你可能有興趣做的任務。

圖 2. 案例圖片可供學習使用 ImageJ。

如果你安裝了 Fiji,而不是單純的 ImageJ ,那麼大量外掛也會被安裝。首先要注意的是自動更新器外掛。每次開啟 ImageJ ,該外掛將聯網檢驗 ImageJ 和已安裝外掛的更新。

所有已安裝的外掛都在“外掛”選單項中可選。一旦你安裝了很多外掛,列表會變得冗雜,所以需要精簡你選擇的外掛。你想手動更新的話,點選“Help”->“Update Fiji” 選單項強制檢測並獲取可用更新的列表(圖 3)。

圖 3. 強制手動檢測可用更新。

那麼,現在,用 Fiji/ImageJ 可以做什麼呢?舉一例,統計圖片中的物品數。你可以通過點選“File”->“Open Samples”->“Embryos”來載入示例。

圖 4. 用 ImageJ 算出圖中的物品數。

第一步給圖片設定比例,這樣你可以告訴 ImageJ 如何判別物品。首先,選擇在工具欄選擇線條按鈕。然後選擇“Analyze”->“Set Scale”,然後就會設定比例尺包含的畫素點個數(圖 5)。你可以設定“known distance ”為 100,單元為“um”。

圖 5. 很多圖片分析任務需要對圖片設定一個範圍。

接下來的步驟是簡化圖片內的資訊。點選“Image”->“Type”->“8-bit”來減少資訊量到 8 位元灰度圖片。要分隔獨立物體點選“Process”->“Binary”->“Make Binary”以自動設定圖片門限。(圖 6)。

圖 6. 有些工具可以自動完成像門限一樣的任務。

圖片內的物品計數前,你需要移除像比例尺之類的人工操作。可以用矩形選擇工具來選中它並點選“Edit”->“Clear”來完成這項操作。現在你可以分析圖片看看這裡是啥物體。

確保圖中沒有區域被選中,點選“Analyze”->“Analyze Particles”來彈出視窗來選擇最小尺寸,這決定了最後的圖片會展示什麼(圖 7)。

*圖 7. 你可以通過確定最小尺寸生成一個縮減過的圖片。 *

圖 8 在總結視窗展示了一個概覽。每個最小點也有獨立的細節視窗。

圖 8. 包含了已知最小點總覽清單的輸出結果。

當你有一個分析程式可以工作於給定圖片型別,你通常需要將相同的步驟應用到一系列圖片當中。這可能數以千計,你當然不會想對每張圖片手動重複操作。這時候,你可以集中必要步驟到巨集,這樣它們可以被應用多次。點選外掛->“Macros”->“Record”,彈出一個新的視窗記錄你隨後的所有命令。所有步驟完成,你可以將之儲存為一個巨集檔案,並且通過點選“Plugins”->“Macros”->“Run”來在其它圖片上重複執行。

如果你有非常特定的工作步驟,你可以簡單地開啟巨集檔案並手動編輯它,因為它是一個簡單的文字檔案。事實上有一套完整的巨集語言可供你更加充分地控制圖片處理過程。

然而,如果你有真的有非常多的系列圖片需要處理,這也將是冗長乏味的工作。這種情況下,前往“Process”->“Batch”->“Macro”,會彈出一個你可以設定批量處理工作的新視窗(圖 9)。

圖 9. 對批量輸入的圖片用單一命令執行巨集。

這個視窗中,你能選擇應用哪個巨集檔案、輸入圖片所在的源目錄和你想寫入輸出圖片的輸出目錄。也可以設定輸出檔案格式,及通過檔名篩選輸入圖片中需要使用的。萬事具備之後,點選視窗下方的的“Process”按鈕開始批量操作。

若這是會重複多次的工作,你可以點選視窗底部的“Save”按鈕儲存批量處理到一個文字檔案。點選也在視窗底部的“Open”按鈕重新載入相同的工作。這個功能可以使得研究中最冗餘部分自動化,這樣你就可以在重點放在實際的科學研究中。

考慮到單單是 ImageJ 主頁就有超過 500 個外掛和超過 300 種巨集可供使用,簡短起見,我只能在這篇短文中提出最基本的話題。幸運的是,還有很多專業領域的教程可供使用,專案主頁上還有關於 ImageJ 核心的非常棒的文件。如果你覺得這個工具對研究有用,你研究的專業領域也會有很多資訊指引你。


作者簡介:

Joey Bernard 有物理學和電腦科學的相關背景。這對他在新不倫瑞克大學當計算研究顧問的日常工作大有裨益。他也教計算物理和並行程式規劃。

相關文章