Linux 上的科學圖像處理
在顯示你的數據和工作方面我發現了幾個科學軟體,但是我不會涉及太多方面。因此在這篇文章中,我將談到一款叫 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 有物理學和計算機科學的相關背景。這對他在新不倫瑞克大學當計算研究顧問的日常工作大有裨益。他也教計算物理和並行程序規劃。
via: https://www.linuxjournal.com/content/image-processing-linux
作者:Joey Bernard 譯者:XYenChi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive