首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将ITK/VTK导入Matlab,还是将Matlab导入VTK/ITK环境?

将ITK/VTK导入Matlab,还是将Matlab导入VTK/ITK环境?
EN

Stack Overflow用户
提问于 2009-05-26 12:07:56
回答 5查看 11.9K关注 0票数 5

对于当前的项目,我必须使用矩阵中提供的信息进行数学化,并使用ITK/VTK函数来显示医疗信息/呈现。基本上,我必须同时使用matlab例程和VTK/ITK (我猜) 50/50的方式。问题是,由于我必须同时使用这两种方法,所以我想预先决定使用哪种方法:

  1. 导入ITK和VTK库到matlab:中,为此您必须首先构建自己的VTK。然后,通过示例,整个想法是在.mex文件中编写VTK代码。在这些文件中,您可以将c-代码作为matlab的一个函数进行编程.
  2. 在ITK/VTK环境中导入matlab函数:为此,我将使用一种语言(可能是python )来进行矩阵计算。我可以利用Numpy。这是Python中的matlab类计算模块,并将vtk数据转换为numpy数据,我可以使用matplotlib来绘制图表。

在matlab中导入的Pros / cons ITK/VTK

  • 易于matlab计算和绘图
  • matlab是处理矩阵最强大的工具之一。
  • 以前使用过matlab (主观的)
  • 必须安装matlab
  • 运行matlab会给你的电脑带来负担。

在ITK/VTK环境中导入的Pros / cons

  • 不需要安装matlab
  • 减少了PC的压力,而且由于医疗数据集需要从您的pc大量的这是很好的。
  • 在这种情况下,ITK/VTK环境已经设置好了(目前正在以这种方式使用它,但从不使用matlab/ .mat)。
  • 已经听说过的故事,很难用这种方式做matlab计算。有点乱。
  • 在python方面的经验较少(与matlab 0相结合)

那么.?结论

实际上,我正在寻找在这两种环境中的一种环境中工作的人,但由于我认为有这么几个人,我喜欢在做出最后选择之前听取他们的建议。让它以我需要的方式工作将花费大量的时间,所以尝试这两种方法都是浪费时间(也有最后期限)。

附加音符

  • 我已经尝试了matlab的Simulink与VTK/ITK库相结合,但我不喜欢它。
  • 虽然解决这个问题的办法当然是我在这里能得到的最好的解决办法,但我也很高兴有经验的人做出与这次一样的基本选择。在做出这样的选择时,需要寻找的关键点是什么?我是不是错过了一个关键点在我的利弊?
EN

回答 5

Stack Overflow用户

发布于 2009-05-28 01:40:18

VTK附带了Python (一种描述)。我猜它也是。如果您在Matlab中还没有很多代码,那么我猜您将更容易地将VTK/ITK与python的numpy、matplotlib等无缝集成。

编辑:

在我看来,非平凡的MEX函数是一个痛苦的书写。权衡通常可以是为每个任务编写新的MEX函数,或者花费额外的时间编写大量的接口代码。

取决于您在做什么,etc(一捆python包,包括matplotlib、numpy等)做了很多Matlab做的事情。有微妙的差别和各种各样的权衡。一旦你掌握了自动广播的诀窍,自动广播就会非常有用。MathWorks最近添加了BSXFUN,但是它是自动的,带有numpy。如果您正在处理稀疏矩阵或调用许多更高级的线性代数函数,请检查numpy文档,看看是否还存在所需的内容。

根据到目前为止您对环境所做的工作,我建议尝试几周的Python方法。看看它的绘图功能和数学功能是否足以满足您的需要。一开始,你的头会撞到墙上,因为文档还不如Matlab的那么成熟。

票数 2
EN

Stack Overflow用户

发布于 2009-08-20 00:22:45

这可能会有帮助: mlabwrap是调用Matlab表单Python的一种相当复杂的方法。http://mlabwrap.sourceforge.net/

票数 2
EN

Stack Overflow用户

发布于 2009-06-10 07:45:15

我花了一些时间对这两个版本进行测试,但最后得出结论:

我选择使用python与numpy/scipy和matplotlib相结合。我选择这样做的主要原因只有一个。在Matlab中导入itk和vtk时,必须使用Mex函数来编写C代码。这些mex文件以下列方式出现在例程中:

alt文本http://www.bastijn.nl/zooi/routine.png

现在,当例程到达mex文件所在的位置时,它会将控制交给这个mex文件并像函数一样激发它, mex文件就像一个黑匣子。在Mex文件完成了它的工作之后,它将控制权交回matlab,然后继续执行例程。但是,在Mex文件被激发时,您不能执行任何matlab操作,也不能从matlab中访问这个mexfile中的变量。因此,不可能运行一些itk/vtk代码,注意它不工作,并且更改了在mex文件中使用的一些变量(在那里创建的,但它们也会死在那里,因为黑匣子只返回您的结果),用于速度测试。你必须再次启动整个mex功能。

这是一个主要的缺点,因为您需要重新运行完整的mex文件(C函数),以便进行所有小的更改。现在正在忙着修复这个主要的限制,但是由于它们还没有准备好,我现在确实需要它,所以我选择了参加蟒蛇游。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/910362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档