ImagePy 三維分析及可視化解決方案

2021-02-21 土鹽



ImagePy 是一款基於 Python 的可擴展圖像處理框架,可謂是 Python 版的 ImageJ,但設計更為精簡,可以輕鬆接入 scipy, scikit-image, opencv 等任何基於 numpy 的圖像處理庫。

Github地址:ImagePy 主頁:http://www.imagepy.org/


ImagePy 三維展示概覽

這裡展示幾個三維視圖,但是需要提醒讀者,三維可視化不等於三維分析,可視化有助於理解,並且可以直觀驗證算法效果,但初學者不要沉迷與三維特效,應注重分析問題的思路,數據處理技巧,把可視化當作一個輔助工具,而不是結果。

DEM數據進行地表重建


幾何圖形的三維渲染


操作案例:

以下是一個腦部MRI數據,讀者可以在這裡下載。我們今天要對影像序列中的willis環腦血管進行提取,測量其長度,體積,表面積,以及拓撲結構。

<腦部MRI 數據下載>


導入圖像:

File > Import > Import Sequence  導入圖像序列

Image > Type > Trans To Stack  轉換成連續棧(這是進行三維分析的前提)

分割

我們的問題難點依舊是分割,即在影像中分離我們關心的目標。說到分割,很多人反映的是閾值分割,的確在我們的影像中,血管由於注射了造影劑,比周圍亮,因而閾值分割是一個可以嘗試的方法。

我們用210作為閾值進行分割,然後做三維表面重建


我們發現重建之後,空間中存在大量的噪聲,其原因是顱骨的反射率也非常高,很難與血管從亮度上分離,並且一些比較細的血管出現了斷裂。

三維分水嶺法

我們嘗試另一種方法,分析問題:

閾值分割是一個非此即彼的判斷,因而在目標與非目標之間,如果存在亮度重疊,那麼勢必無法完美分割。而另一種方式是,我們採用兩個閾值,把像素分為三類,背景,待確定,前景。而待確定的部分由分水嶺算法完成。換言之前景,背景自由生長,最終在梯度最大的地方終止,就得到了邊界。

在此之前我們先對圖像做一個三維平滑,以及一個garmma矯正。三維平滑用最小的半徑,否則細血管會被淹沒,garmma是對亮度做一個指數形式非線性映射,類似ps裡面的曲線調整,這樣可以保留亮部,抑制暗部。(但是對閾值分割依舊沒有幫助,因為garmma函數不能改變亮度次序,主要目的是降低其他部位與黑色背景的差異,為分水嶺提供便利)

Kit3D > Filter 3D > Gaussian 3D   sigma:0.7

Process > Math > Garmma  value:3


Kit3D > Filter 3D > Up Down Watershed 3D   Low:34  High:117

其原理如下,標記了紅色和綠色區域後,對原始三維圖像做梯度,即凸顯變化部分,然後紅色和綠色區域在梯度圖上生長,最終在梯度最大的地方終止,感性的說,血管壁很亮,很難被穿過,最後內部是紅色,外部是綠色。


Kit3D > Viewer 3D > 3D Surface threshold:128  march step:1  down scale:1

觀察結果,我們甚至得到了良好的顱骨與部分腦組織,是的,我們依舊無法保證得到純淨的血管目標,但是我們的噪聲已經不那麼零碎了,後續有辦法去除他們。

分水嶺相比閾值的優勢:

1)結果碎片不像閾值那麼多,為後續處理提供了很好的條件。

2)結果對與閾值設定不敏感(因為最終邊界是算法自動尋找梯度最大的位置,這也意味著結果更加客觀)

去除雜物

首先我們觀察,大塊噪聲都在顱骨部位,空間上可以與目標簡單分離。

製作圓形選區,然後 Image > Clear Out,清除背景

再次三維重建 Kit3D > Viewer 3D > 3D Surface  threshold:128  march step:1  down scale:1

注意,如果不是有意要疊加效果,請在三維重建之前關閉之前的三維窗口,否則結果會疊加。

我們看到目標已經比較純淨了,剩下的是少量懸浮碎片。

我們用聯通區域的幾何特徵進行過濾。

Kit3D > Analysis 3D > Geometry Analysis 3D 對區域中每塊連通區域進行位置,體積分析。

在結果中我們看到兩個大的聯通區域,體積是3685,11371,而其他的都遠小於這兩塊,因而執行幾何過濾器,去掉體積小於1000的,注意以上過程都使用8鄰域。

Kit3D > Analysis 3D > Geometry 3D Filter  back color:0 去掉體積小於1000的塊

再次三維重建 Kit3D > Viewer 3D > 3D Surface  threshold:128  march step:1  down scale:1

至此我們得到了理想的分割結果。這個掩模是重要的中間過程,如果有必要,可以用Image > Export > Export Sequence 進行輸出(二值圖想用png會得到無損理想的壓縮效果)

表面積,體積測量

得到掩模後,我們可以對目標進行體積,表面積測量,所謂體積,本質上是累計像素個數,而表面積,其實需要三維表面重建算法,也就是得到用於渲染的表面三角形。


拓撲分析

由於拓撲分析會對圖像做骨架處理,為了不破壞之前的掩模結果,我們用 Image > Duplicate 對圖像進行複製,命名為topograph。

拓撲構建

Kit3D > Network 3D > Skeleton 3D  三維圖像骨架化

Kit3D > Network 3D > Build Graph 3D  構建拓撲結構


拓撲可視化

接著我們可以對骨架進行可視化,Kit3D > Network 3D > Show Graph 3D

我們觀察在兩個分支上有太多的分叉,我們來修剪它(醫學上有分叉可能有其他意義,這裡只是展示如何去除分支)

把圖轉到一個分支較多的區域,我們看到,18-16之間的邊就是一段分支。

骨架修剪

Kit3D > Network 3D > Graph Statistic 3D 進行節點,邊統計,我們看到16-18之間的邊距離是11.42。並且瀏覽數據,有一部分在十以下的邊,我們選定15作為修剪閾值。

Kit3D > Network 3D > Graph Cut Branch 3D  limit:15 對骨架進行修剪。

修剪過後,只是圖像內容發生了變化,但拓撲結構並沒有更新,需要重新執行如操作:

Kit3D > Network 3D > Skeleton 3D  三維圖像骨架化

Kit3D > Network 3D > Build Graph 3D  構建拓撲結構

Kit3D > Network 3D > Show Graph 3D  再次可視化

這次我們得到了純淨,理想的結果。接下來可以對拓撲結構進行統計分析了。

拓撲統計:

Kit3D > Network 3D > Graph Statistic 3D  得到了邊和節點信息


Kit3D > Network 3D > Graph Summarise  進行拓撲匯總,可以看到有兩個聯通部分


製作疊加效果

點擊掩模圖像,(有必要可以複製一份,命名為vessel)

此前我們重建的效果表面都是粗糙的,因為我們的區域是二值的,像素勢必會產生稜角,最後為了得到更好的視覺效果,我們對圖像進行一個高斯模糊,並且降低重建時使用的閾值,讓血管比實際粗一些。(這次我們為了得到疊加效果,請不要關閉之前的骨架三維圖,如果已經關閉,可以激活骨架圖,然後再次用 Show Graph 3D 進行生成)

Kit3D > Filters 3D > Gaussian 3D  sigma:0.7 做一個小尺度三維平滑

Kit3D > Viewer 3D > 3D Surface  threshold:100  march step:1  down scale:1 三維重建

得到疊加效果,半透明的血管內可以看到骨架結構,節點位置用紅色帶有ID標識的小球表示。


三維工具欄

以上的實例中,覆蓋了大多三維操作,最後我們介紹一下三維工具,三維工具需要點擊最右側的下拉按鈕,選擇ToolKit3D。裡面多數是一些功能的快捷鍵。

以下從左到右,分別是:

Build Graph 3D, Cursor 3D, Graph Cut Brach 3D, Show Graph 3D, 3D Surface 的快捷按鈕,除了Cursor 3D,其他功能以上都有涉及,這裡簡單介紹Cursor 3D的功能。

我們的數據是二維序列,而重建後是三維表面,有時候,我們需要知道三維中的這個節點,對應二維圖像的那個位置,或者想知道二維圖像上這個白色區域,在三維空間中的什麼位置,而這個Cursor 3D工具,就可以起到聯通圖像與三維模型的作用。

雙擊Cursor 3D圖標,可以設置光標半徑及顏色,然後用滑鼠在圖像序列中點擊,移動,也可滑動滾輪在z方向移動,而對應的三維圖中會實時出現其對應的位置。

練習

以上分析過程,覆蓋了很多分析技巧,並且數據分割的複雜度比較高,最後留一組胸腔MRI數據給讀者當作練習,數據可以在這裡下載。(提示,由於解析度較高,三維平滑的sigma可以選擇1)

<胸部MRI數據下載>



點讚

ImagePy是我個人用業餘時間維護開源項目,屬於公益事業,其發展與完善需要大家的支持,如果覺得ImagePy對你有幫助,請點擊star,以如下方式給予您的支持:

在此紀念,2019/07/26 739 star

在 Github項目地址 右上角為項目點一顆star,以示支持。

把項目推薦給同學和朋友,把本文進行轉載。

本人也在擬寫一本通俗易懂的,理論,實驗相結合的圖像處理教程,屆時請大家捧場。

本文作者,閆霄龍_ImagePy,為閆大打Call!!!


QQ群:596310256 歡迎共同探討學習圖像處理問題。

文中連結,點擊"閱讀原文"即刻探索!

相關焦點

  • 工具 | ImagePy——UI界面支持開放插件的Python開源圖像處理框架
    幾何濾波幾何分析菜單打開:process -> region analysis -> geometry analysis count,計算面積並分析參數幾何分析它顯示了 Up And Down Watershed 是如何工作的:ImagePy 可以完成圖像的 3d 濾波、3d 輪廓構建、3d 拓撲分析、2d 表面重建和 3d 表面可視化。3d 視圖可以被自由拖動、旋轉,其結果可以保存為.stl 文件。
  • Python中文社區開源項目計劃:ImagePy
    一定程度上,可以認為是一個以OpenCV為內核的PhotoShop,但更加偏重於圖像分析,可用於醫學,生物,材料各個學科的科學實驗分析上。項目借鑑了ImageJ,但充分發揮Python的優勢,整個項目架構,擴展開發,都更加簡潔高效。
  • 大數據分析完美解決方案,訊維大數據可視化系統強勢來襲!
    為了對這些數據進行合理的利用並擺脫超負荷信息所帶來的困擾,數據可視化的概念應運而生。根據數據可視化的概念,音視頻工程商開發出全新的大數據解決方案——大數據平臺。大數據平臺是順應目前信息化技術水平發展、服務政府職能改革的架構平臺。
  • 迪瀘分享 | 利用三維空間掃描,領航視覺想為室內定位提供可視化解決方案
    搬哪兒提供估價平臺+標準流程的一站式搬家服務Accost 想嘗試點社交新方式領航視覺想為室內定位提供可視化解決方案
  • 試用邀請 | Orbit 為三維移動測量提供標準化完整解決方案
    Orbit 是面向三維移動測量提供標準化完整解決方案,包括數據管理,特徵提取以及移動數據發布。產品覆蓋多個行業應用,如:交通、通信、電力、能源、施工等。解決方案適合任一硬體採集系統及任何數據體量。產品技術與Bentley軟體現有的設計解決方案及數字城市產品相結合,可以創建基於工程的移動數字孿生模型。
  • 三維組態部件動畫解決方案
    歡迎關注ITman彪叔,可視化服務專家,提供三維可視化,數據中心,智慧園區,智慧樓宇,工業組態, 2d拓撲,大屏呈現等可視化專業服務。
  • 圖可視化分析解決方案-KeyLines介紹
    Cambridge Intelligence作為圖可視化領域的標杆公司,其產品KeyLine、ReGraph、KronoGraph都是圖可視化領域典型解決方案
  • Davinci-一站式數據可視化解決方案
    Davinci 是一個 DVaaS(Data Visualization as a Service)平臺解決方案
  • 三維全景漫遊,3D虛擬實境讓企業產品更加三維可視化展示出來,從而讓品牌傳播方式更加新穎
    三維建模的方式可以解決靜態圖片和動態視頻都存在的問題,但是代價很高,真實性也並不總是令人滿意。所以,在我們需要真實、全面、直觀的表現某一場景時,360全景公司無疑是最好的選擇。360度全景 360度全景就是視角超過人的正常視角的圖像,而我們這裡說的全景特指水平視角360度,垂直視角180度的圖像。
  • Leica + Autodesk 「數字工地」 聯合解決方案(二)
    如今,徠卡測量系統與同樣走在工程設計信息化技術創新前沿的歐特克公司聯合推出「數字工地」聯合解決方案,旨在改善傳統建築施工的工作方式,更好地推進建築施工管理數位化。通過二者的強強聯手,將徠卡測量系統200餘年的測量技術與歐特克公司的工程建設BIM軟體有機地融合起來,為建築設計施工行業的從業者提供貫穿建築全生命周期的軟硬體一體化應用解決方案。
  • AntV 圖可視分析解決方案,來啦!
    什麼是圖可視分析?什麼是解決方案?解決方案都有啥?為什麼要寫它?AntV 是螞蟻集團全新一代數據可視化解決方案。數據可視化呢,就是數據通過某種技術手段,直觀展示在人們眼前。如上右圖所示,關係數據也被稱為圖數據,將關係數據可視化出來,即為圖可視化,在圖可視化的基礎上,附加交互,布局,算法,分析方案等,完成一個分析任務,即為圖可視分析。
  • BlackHat:六大安全可視化 成就ICEFIRE高效解決方案
    由於傳統用來特徵識別和清除惡意軟體的技術將會很快失效,企業IT系統的安全需要更完整先進的解決方案。在新時期網絡安全的大背景下,深圳七七元素科技有限公司在Black Hat 2018展會中隆重推出ICEFIRE安全可視化平臺,這是一套以Hadoop分布式架構為基礎進行數據收集和採用深度學習算法訓練數據模型來實現數據可視化、數據安全、數據運維、數據人工智慧的高效解決方案。
  • 亞信科技時空位置大數據解決方案入圍工信部工業網際網路平臺解決方案名單
    >亞信科技「基於時空位置大數據的疫情防控解決方案」作為第一類別方案入圍名單。、人工智慧、數位化運營等能力有針對性地推出了十六項應用產品及解決方案,為全面、精準抗疫提供技術、智力和產品支持。例如廣告營銷,最要緊的莫過於把有用的產品推薦給需要它的客戶,發掘、篩選目標受眾和精準推送是重中之重,直接關乎轉化和交易成果,一個多維生動的用戶畫像就成了保證效果達成的關鍵所在,基於時空位置大數據的商業解決方案讓這些問題迎刃而解。門店選址、活動運營等也是如此,運用基於時空位置大數據的「數字孿生」技術,輔以全面的數據智能分析,能夠讓商家的經營生產事半功倍。
  • 三維家慧眼營銷:適合您的數位化營銷解決方案
    慧眼營銷是三維家為全域營銷下的行業量身定製的數位化系統,旨在運用創新技術賦能行業開展數位化營銷,打造真正一體化的品牌營銷閉環。慧眼VR為行業打造集全景展示、廣告營銷、企業定製應用,消費轉化於一體的雲端全景系統。
  • 三維可視化技術在智慧城市建設中的典型應用場景解析性文件
    三維可視化技術類型01、3DGIS(三維地理信息系統)前景互聯利用3DGIS技術,將地圖這種對視覺化效果有特殊要求的數據與地理分析功能輸入資料庫系統進行集成操作。當其作用於智慧城市建設時在消防規範、抗震救災以及城市公共場所的選取等方面不僅能夠對城市的整體運行狀況進行整體把控還能根據監測功能對可能出現的問題進行預測、預警。
  • 希捷聯合大華展示可視化交通管理解決方案
    希捷聯合大華展示可視化交通管理解決方案在2016年北京安博會期間,希捷聯合大華股份共同展示了可視化交通管理解決方案。10月27日上午,大華股份的產品經理方羽現身希捷展臺,展示了其大華在可視化交通管理方面的解決方案。
  • MapGIS Desktop(九州) 自主可控軟硬一體化聯合解決方案
    MapGIS Desktop(九州)作為專業的跨平臺桌面GIS產品,基於跨平臺微內核技術構建,與信創技術深度融合,全面適配全國產化環境,為用戶提供強大的數據管理與編輯、數據製圖與可視化、空間分析與影像處理、三維可視化與分析等能力,通過插件化的框架,實現用戶按需定製。
  • 基於增強現實的三維建築物模型移動可視化系統
    點擊圖片上方藍色字體「慧天地」即可訂閱基於計算機視覺的註冊方法使用場景局限於可控環境,難以應用於戶外大範圍地理場景中,而基於傳感器的註冊方法,可實現戶外場景中的跟蹤註冊,但受制於精度與誤差,效果一般,並且功能有限。採用混合跟蹤技術可取長補短,提高系統的可靠性,但也增加了系統的複雜度和成本。增強現實技術對數據的可視化更簡單、直觀、真實感更強。在地理信息和商業地圖領域,增強現實技術的應用以POI等點狀數據作為增強信息。
  • 華為攜智能雲監控解決方案亮相上海安博會
    (以下簡稱「上海安博會」),展示了華為智能雲安防解決方案,包括4K超清攝像機、VCN視頻安防雲平臺、VCM視頻智能分析平臺、安防視頻雲與大數據、智慧城市交通等產品及解決方案。 華為智能雲監控解決方案一直倡導開放、合作,針對視頻行業客戶需求不一、智能算法種類多的現狀,華為VCM視頻智能分析平臺可以通過開放SDK、開放南北接口,支持第三方廠商算法的導入或集成,滿足不同行業客戶需求。
  • 騰訊雲|RayData IDC機房解決方案
    為此,RayData大數據可視化交互系統提出了針對IDC管理的可視化解決方案。      每個機房在業務上的服務對象,同樣可以通過RayData系統來實現管理及可視化,搭建三維虛擬可視化平臺。針對數據業務維度的內容及分布做場景化表達,不同業務維度獨立統計並分析其資源消耗。