matplotlib 用于图像分析的感兴趣区域绘制工具(python)

nwlls2ji  于 2023-03-03  发布在  Python
关注(0)|答案(5)|浏览(162)

为了摆脱IDL和Matlab,我正在探索我需要在python/scipy等中实现什么类型的工具。一个常见的功能是显示医学图像和感兴趣区域的轮廓(例如IDL中的defroi,或者是GIU版本,在查科和matplotlib中,有一些LassoSelection工具的示例,它们很接近,但不太适合我的需要(我希望单击-单击-单击多边形,而不是拖动光标)。
有没有现成的工具可以做到这一点,或者我需要扩展和定制现有的类?无论哪种情况,指向正确方向的指针都会很有帮助。

fdbelqdn

fdbelqdn1#

看起来matplotlib并不适合拍摄交互式数据可视化,包括像感兴趣区域绘制这样的功能。当然,它确实处理事件处理等。
到目前为止,我所能想到的最好的是一个名为guiqwt的令人印象深刻的成果,它基于PyQwt,此外还有一个(相当容易满足)的依赖性。快速浏览一下他们的图像可视化测试示例,可以看到一个方便的工具集。安装和运行这些示例非常容易。时间会告诉我融入自己的工作是多么容易。

332nm8kg

332nm8kg2#

现在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)
1sbrub3j

1sbrub3j3#

我想你可以使用PyQTGraph来实现这个目的,https://launchpad.net/pyqtgraph。我很少使用它,因为它比matplotlib有更少的固有选项,但是它非常快,而且它确实有一些内置的小部件来选择你感兴趣的ROI。你可能会发现自己构建了自定义的绘图例程,将matplotlib和PyQTGraph合并在一起。这可能会导致头痛,如果格式不同,等等。它可以导致更多的簿记,但可能会解决您的问题。

nszi6y05

nszi6y054#

2023年:你一定要看看mpl_interactions

您需要的是here,它也可以与 * jupyter-notebook * 配合使用。
官网举例:

参考:https://mpl-interactions.readthedocs.io(上次访问时间:2023年2月28日)

5kgi1eie

5kgi1eie5#

jdoepfert在github上提供了一个很好的工具,可以做你想要做的事情,在我的机器上性能有点慢,但是如果你注解掉motion_notify_event,它就像一个魅力。

相关问题