为了摆脱IDL和Matlab,我正在探索我需要在python/scipy等中实现什么类型的工具。一个常见的功能是显示医学图像和感兴趣区域的轮廓(例如IDL中的defroi,或者是GIU版本,在查科和matplotlib中,有一些LassoSelection工具的示例,它们很接近,但不太适合我的需要(我希望单击-单击-单击多边形,而不是拖动光标)。
有没有现成的工具可以做到这一点,或者我需要扩展和定制现有的类?无论哪种情况,指向正确方向的指针都会很有帮助。
为了摆脱IDL和Matlab,我正在探索我需要在python/scipy等中实现什么类型的工具。一个常见的功能是显示医学图像和感兴趣区域的轮廓(例如IDL中的defroi,或者是GIU版本,在查科和matplotlib中,有一些LassoSelection工具的示例,它们很接近,但不太适合我的需要(我希望单击-单击-单击多边形,而不是拖动光标)。
有没有现成的工具可以做到这一点,或者我需要扩展和定制现有的类?无论哪种情况,指向正确方向的指针都会很有帮助。
5条答案
按热度按时间fdbelqdn1#
看起来matplotlib并不适合拍摄交互式数据可视化,包括像感兴趣区域绘制这样的功能。当然,它确实处理事件处理等。
到目前为止,我所能想到的最好的是一个名为guiqwt的令人印象深刻的成果,它基于PyQwt,此外还有一个(相当容易满足)的依赖性。快速浏览一下他们的图像可视化测试示例,可以看到一个方便的工具集。安装和运行这些示例非常容易。时间会告诉我融入自己的工作是多么容易。
332nm8kg2#
现在matplotlib有一个很好的小部件叫做“LassoSelector”,它使得自由多边形的绘制变得非常容易。
示例代码如下:http://matplotlib.org/examples/widgets/lasso_selector_demo.html
我的简约版本:
1sbrub3j3#
我想你可以使用PyQTGraph来实现这个目的,https://launchpad.net/pyqtgraph。我很少使用它,因为它比matplotlib有更少的固有选项,但是它非常快,而且它确实有一些内置的小部件来选择你感兴趣的ROI。你可能会发现自己构建了自定义的绘图例程,将matplotlib和PyQTGraph合并在一起。这可能会导致头痛,如果格式不同,等等。它可以导致更多的簿记,但可能会解决您的问题。
nszi6y054#
2023年:你一定要看看
mpl_interactions
您需要的是here,它也可以与 * jupyter-notebook * 配合使用。
官网举例:
参考:https://mpl-interactions.readthedocs.io(上次访问时间:2023年2月28日)
5kgi1eie5#
jdoepfert在github上提供了一个很好的工具,可以做你想要做的事情,在我的机器上性能有点慢,但是如果你注解掉
motion_notify_event
,它就像一个魅力。