上次稍稍和大家提過,醫學影像的處理,有一大部份是使用insight toolkit (ITK)了。而ITK和matlab的互通,也有不少人努力過,包括有matitk, simitk以及現在要提的 simpleITK。
其實,simpleITK並不是使用最方便的.mex編譯,可以直接呼叫。而是透過 java的使用來implement。當然,也可以透過c++,c#,那不如直接去呼叫原始的 ITK,不必使用精簡版本的simpleITK。另外,simpleITK也有python版本,matlab也可以執行python腳本,但是效能並沒有java來得好。
只是,matlab並不能像執行.m file,或是呼叫.mexmaci64一般的直接執行 java code,必需經過一些處理。接下來就把小弟不才我胡搞瞎搞兩天的功力,全放在這兒了。
星期二, 2月 25, 2014
星期一, 2月 24, 2014
如何給強大的 Matlab,再外加 ITK 的大力丸咧?(介紹篇)
一直想要做些醫學影像的研究,所以小弟我涉獵了一些影像研究的東西。但是經歷上根本不是學computer science的,血液中流的也不是程式設計師的血,只好勉強用用matlab來解決我的問題。雖然matlab的image toolbox相當強大,但是,做影像的永遠都差那麼一些些,所以也需要一些外加的程式庫來運用。
有不少朋友都問我,要做影像為什麼不用openCV?說真的,openCV真是個好物,對我而言,還有強者Kota Yamaguchi 幫它轉成matlab認得的function,更是加快在matlab上的應用。但是openCV在體質上,並不太適合用在醫學影像。它大部份的程式庫,不管2D或3D,都是處理8 bit, 3 channel的彩色影像為主,只有少數函式可以接受double的數值。而醫學影像卻常常是12 bit, 1 channel的灰階影像(其值大多在-1024 ~ 1023之間,我實際處理,有遇過數值到達16k的範圍)。這樣的資料丟到openCV的程式庫裏去,要嗎被吐出來,不然就是給個怪怪的結果。所以,必需做些資料轉換的工作,甚至要把 Grayscale的部份劣化。就看你能不能接受這樣的結果。
有不少朋友都問我,要做影像為什麼不用openCV?說真的,openCV真是個好物,對我而言,還有強者Kota Yamaguchi 幫它轉成matlab認得的function,更是加快在matlab上的應用。但是openCV在體質上,並不太適合用在醫學影像。它大部份的程式庫,不管2D或3D,都是處理8 bit, 3 channel的彩色影像為主,只有少數函式可以接受double的數值。而醫學影像卻常常是12 bit, 1 channel的灰階影像(其值大多在-1024 ~ 1023之間,我實際處理,有遇過數值到達16k的範圍)。這樣的資料丟到openCV的程式庫裏去,要嗎被吐出來,不然就是給個怪怪的結果。所以,必需做些資料轉換的工作,甚至要把 Grayscale的部份劣化。就看你能不能接受這樣的結果。
訂閱:
文章 (Atom)