医学图像处理的最佳编程语言

时间:2009-06-12 04:16:08

标签: c# c++ python image-processing image-manipulation

我希望建立一种医疗解决方案,供外科医生用于3D显示Dicom图像。此外,该软件将允许他们对图像执行一些分割和操作。

我可能会使用VTK包www.vtk.org/来协助这个项目。

现在,我想知道用C#,C ++或Python做这个项目是否更容易和更好?我很感激在寻找如何在这三种选择之间做出选择的任何帮助。

8 个答案:

答案 0 :(得分:6)

Python越来越受到3D可视化的欢迎 - 例如,有几个实验室将它用于脑部图像。所以它绝对适用于那种问题。图书馆方面,我猜你知道比vtk和co之类的东西可以在python中使用。

http://neuroimaging.scipy.org/site/doc/manual/html/faq/why.html

当然,在C ++中实现它,理论,将导致更快的程序,其他一切相同(相同的算法,熟练掌握语言的程序员等等)并给予'无限时间'。但是python肯定比C ++更有效率:在给定的时间内,你将在python中完成比在C ++中更多的事情,除非你是C ++中比python更好的程序员。此外,如果需要与不是程序员的科学人员进行交互,python将比C ++更具可读性。研究人员/科学家制作的C ++在我的经历中往往非常糟糕(甚至比Fortran更差:))。

我可以预见的最大问题是如果python不够快/内存效率,那么从架构的角度来看它涉及很多约束。我认为图像不会出现这种情况(python,因为大多数高级语言,当需要数十万个具有大量交互的对象时,会出现可伸缩性问题 - 这是为项目使用C ++的少数几个领域之一从头开始,现在仍然有意义恕我直言。)

免责声明:我应该提到我在科学蟒蛇社区中参与了很多,而且我不是图像处理专家。

答案 1 :(得分:4)

就个人而言,我是一个c ++和python的家伙,我可能会选择c ++,因为这听起来像是一个相对密集的项目,而且我在C ++中做了大部分最好的高级设计(非常适合快速,灵活地构建)代码库),虽然我倾向于使用python来处理像django这样的东西,其中应用程序逻辑较少,但是能够快速调整函数,外观和感觉非常重要。但是,我的选择并不意味着它应该是您的选择。以下是需要考虑的一些事项:

最重要的1)熟悉。如果您正在编写生产代码,那么您希望使用您熟悉的内容,并且适合您,或者您将难以使用该语言并错过最后期限。即使你完成了这个项目,你也必然会为你正在学习的东西编写很多混乱的代码。我全都是为了学习新语言,但是可以用你能负担得起的东西来搞定。

2)第三方图书馆;除了你提到的那个之外你还想要哪些?如果他们没有包装,你就会自己动手。您想要编写GUI的例子就是一个例子。

3)部署:我认为这将是一个假定的Windows可执行文件。 C#和C ++都很容易做到这一点,但是如果你计划在没有python解释器的情况下部署python程序,那么你必须熟悉py2exe

答案 2 :(得分:2)

如果你可以逃脱python - 换句话说,如果你知道它在python中运行良好,我肯定会选择它而不是C#/ C ++。

我确定你使用的3D库无论如何都是用C或C ++构建的,所以使用像python这样的高级语言与它连接不应该导致速度减慢。

答案 3 :(得分:2)

ITK是医学图像处理的基础,而且是C ++中的。所以我想我推荐使用C ++ w / ITK。

答案 4 :(得分:1)

大多数医学3D图像通常都非常大(GB大小)。您想选择一种能够轻松应对这些语言的语言。据我所知,C#有2GB内存限制(我不是100%肯定),这可能会导致一些问题。

我对Python没有任何经验,所以我不打算走那条路。但我在医学图像数据(重建,过滤,标准化和其他繁重计算)上使用C#和C ++。在我们的例子中,由于速度的原因,C ++是唯一的选择。但是,在查看图像时,这可能不是问题。

祝你好运。一个好的稳定和快速的3D查看器会很棒!

答案 5 :(得分:0)

我为Sound Vet工作了一段时间。他们为兽医领域提供X射线成像软件。他们使用C#和winforms。

答案 6 :(得分:0)

我同意Todd Gardner的观点,熟悉可能是决定编程语言选择成功的最重要因素。因此,如果您比其他两种语言(或其他任何选项)更熟悉这三种语言中的一种,我建议您选择那种语言。

但是,如果你同样不熟悉所有这些内容,那么我会首先考虑cloudhead对Python的推荐。我相信这是三个中最容易学习和提高工作效率的。

答案 7 :(得分:0)

大多数专业医学影像公司都使用Accusoft Pegasus PICTools库。 它们为所有DICOM有损和无损格式(如JPEG 2000,无损JPEG,JPEG-LS等)提供最快,最标准的压缩和解压缩。

如果需要速度,则不会有任何比较。

如果您在Windows上进行部署,ImageGear .NET或ImageGear Pro将为您提供易于使用的环境,并完全支持DICOM dcm文件。

您也可以使用ImagXpress进行Windows开发。