2011-02-18 178 views
6

爲了擺脫IDL和Matlab,我正在探索需要在python/scipy等中實現哪些工具。一個共同的特徵是顯示醫學圖像和輪廓感興趣的區域(例如IDL中的defroi,或者是GIU版本,xroi)。在chaco和matplotlib中,有一些LassoSelection工具的例子很接近,但並不適合我的需求(我想單擊並單擊一個多邊形而不是拖動光標)。用於圖像分析的感興趣區域繪圖工具(在python中)

是否有現成的工具可以做到這一點,或者我是否需要擴展和定製現有的類?在任何一種情況下,正確方向的指針都會有所幫助。

回答

2

我想你可能可以使用PyQTGraph來達到這個目的,https://launchpad.net/pyqtgraph。我只是謹慎地使用它,因爲它比matplotlib有更少的先天選擇,但它非常快,它有一些內置小部件,用於感興趣的ROI選擇。您可能會發現自己構建自定義然而,繪製將matplotlib與PyQTGraph合併的例程,如果格式不同,會導致頭疼,等等。它可以導致更多的簿記,但可以解決您的問題。

+0

感謝您的提示:我曾看過,但在某些情況下,示例test_ *似乎有點脆弱。有點依賴於此。我想我可能只需要用matplotlib + pyQt去自己製作的路線。 – DrSAR 2011-03-03 07:15:33

6

看起來,matplotlib並不適合拍攝包含感興趣區域繪圖等功能的交互式數據vsiualization。雖然它確實處理事件處理等。

目前爲止我能想出的最好的是guiqwt這個名字的令人印象深刻的努力。它基於PyQwt,另外還有一些相當容易滿足的依賴項。快速瀏覽test examples of image visualization顯示了一個便利的工具集。安裝和運行這些示例很容易。時間會告訴我們融入自己的工作是多麼容易。

2

現在matplotlib有一個很好的小部件叫做「LassoSelector」,它使得自由多邊形繪圖變得非常簡單。

示例代碼瀏覽: http://matplotlib.org/examples/widgets/lasso_selector_demo.html

我的簡約版本:

from pylab import * 
from matplotlib.widgets import LassoSelector 

fig, ax = plt.subplots() 
ax.imshow(np.random.randint(0,255,(255,255)), cmap='gray') 

def onselect(verts): 
    print verts 

lasso = LassoSelector(ax, onselect) 

subplots_adjust(left=0.1, bottom=0.1) 
0

有一個很好的工具,不正是你想要jdoepfert可在github什麼。 我的機器性能有點慢,但如果你註釋掉motion_notify_event它就像一個魅力。

相關問題