在醫學圖像領域,python可以取代matlab嗎?


你好,我是ImageJ的開發者之一,現在我推出了更為強大,擴展更方便的ImagePy,依然開源免費,基於Python開發,可以輕鬆接入Scikit-image,OpenCV,ITK 等任何基於Numpy的第三方庫,讓開發變得無比高效和輕鬆。

主界面

細胞計數

圖像匹配

地表重建地表重建地表重建地表重建

三維重建

目前開發,文檔,推廣都只有我一個人在做,希望更多的圖像處理愛好者多多支持,更多信息請關注 ImagePy 開源圖像處理框架 - 知乎專欄


還有比MATLAB的圖像和生物工具箱更專業的嗎?人家賣那麼貴是有原因的,雖然那麼貴但好在什麼東西到了中國都有盜版。這麼說吧,對你來說MATLAB和Python都免費,那你是選原價那麼貴的東西呢?還是原價本來就免費的東西呢?


python完全能取代Matlab。實際上身邊很多人就不用Matlab做醫學圖像方面的research

有幾個原因。

Python有人說是個glue語言,就是可以把一些其他語言寫成的腳本,軟體等,用python做個wrapper。醫學圖像經常需要處理大量文件,多個目錄,各種預處理,需要各種不同的軟體。Matlab不擅長處理這些,python更好。

如果直接用python寫演算法,scikit0-image等python的工具已經具備基本的圖像處理的而功能。Matlab裡面有些所謂高級演算法,一般也用不著。如果處理3D的數據,演算法包當然首推ITK。樓上說的ITKSnap就是基於ITK的。這個跟matlab沒關係。文件格式,Python支持nifti等很多格式。

另一個3D slicer處理三維圖像的軟體,也是有python介面的。 這是主流的醫學圖像的開源軟體。還有個Mevislab,好像也有python介面。

python作圖和Matlab相比,差不多,看個人喜好。

我在boston Mabla工作的同學說,他們公司現在Matlab都不怎麼開發,專註企業用戶,專註simulink了。

上邊有人問「值化、邊緣檢測、濾波、骨骼化、形態學上的膨脹與腐蝕、成像後的數據格式轉化」,這些都可以在python裡面做,ITK還有python借口,可以處理三維圖像,當然也可以處理二維。

未來是python的。


Matlab的庫全很多,python更偏重底層,處理速度要快一些。但是就我做圖像處理的經驗Matlab就是試演算法的,要做實裝還是得用c編寫。


update at 2016/05/18

至少目前為止,在學術圈不太可能

Matlab和python我都用過,從我個人的經歷來看,我用python主要是處理大量數據,而讀研時的方向是醫學圖像處理,基本都用Matlab進行圖像處理和分析,不用python

Matlab相對於python,至少有四個好處:

1、Matlab用來處理圖像時間更長,開發者也多,身邊的人都在用,有這樣的使用氛圍。而python是通用的,哪裡都能插一手,網路、圖像、計算等等都行,當然也有Python Imaging Library這樣的東西,但功能太簡單了

2、圖像處理所需要的別的軟體,像itksnap一類的,採用的數據格式nii都有專門的Matlab軟體包能進行格式轉化,而python我沒聽說可以這麼做

3、Matlab醫學圖像處理的軟體包更多,資源豐富,在看別人的論文的時候,找到的代碼包也都是用Matlab寫出來的,這種情況下其實很難換用python

4、Matlab繪圖方便,而且debug功能也很好,能在workspace里看變數

Matlab支持的語言很多,支持C/C++,也支持python,甚至能調用vba和sql(有人說python也行,這個可能是我python研究得不夠吧,我很少用python除了數據以外別的功能)。具體的使用例子,像CT/MRI一類的圖像以及光聲成像設備產生的細胞和血管成像,這些圖像的處理涉及二值化、邊緣檢測、濾波、骨骼化、形態學上的膨脹與腐蝕、成像後的數據格式轉化,血管的trace都是能用幾句Matlab代碼就能實現的,但我沒用python實現過

有人覺得如果python能完美替代Matlab,也和我說說怎麼用python對下面這種圖像進行skeletonization唄


不能,很多庫python都沒有。而且2014b的matlab已經支持python


matlab的確非常好用,不過感覺python配上專門的package也非常強大,甚至勝過matlab在相應的地方。比如目前做的一個project用vmtk就非常好用,matlab就略遜一籌。另外CT reconstruction用C++和python也很普遍。不過一般配matlab一起用的。


推薦閱讀:

如何評價新出的MATLAB R2017b?
如何用matlab在不用循環語句的情況下刪除包含某些特定字元的行?
Mathematica 有哪些不如 MATLAB 的地方?
如何用Matlab畫一朵花?

TAG:Python | MATLAB | 醫學影像 |