多亏了SimpleITK in Python,我已经开始与SimpleITK合作一周了。尽管目前我对SimpleITK很满意,但我注意到Powell optimization scheme或OnePlusEvolutionary one这样的特性在SimpleITK中是不可用的。以地标为基础的注册方法似乎也是如此。
因此,我想知道是否有一种方法可以检索ITK (在C++中)在SimpleITK中可用的所有功能,还是有必要执行自己的包装?
如果不是,我以后将学习C++这样做!
谢谢!
发布于 2015-07-16 19:25:09
你是对的。SimpleITK的功能是有限的。但是,可以使用WrapITK接口访问Python中的整个ITK库。这是一个旧的界面,我认为已经有一段时间没有更新了。但是,仍然可以从源代码编译新构建并使用WrapITK。
这一过程并不完全顺利。我过去在Windows机器上做过构建,然后注意到了一些我不得不遇到的不太顺利的步骤。我会把那些放在这里。由于您没有提到您的操作系统,我将继续解释Windows的设置。让我们看看你能不能让它启动并运行。
ITK_WRAP_PYTHONITK_WRAP_* (所有类型:浮动、双等)ITK_BUILD_SHARED_LIBS (如果设置了第一个标志,则自动设置)
WrapITK.pth文件从ITK build/Wrapping/Generators/Python/Release复制到Python/Lib/site-packagesPath变量中添加以下内容:C:\ProgramLibs\ITK\build2008\lib\ReleaseC:\ProgramLibs\ITK\build2008\bin\ReleaseC:\ProgramLibs\ITK\build2008\lib
itk.Image之外,还有十几个警告,它们需要时间来执行。这是一个众所周知的问题。一旦你通过了这件事,就很顺利了。测试文件
import itk
pixelType = itk.UC
imageType = itk.Image[pixelType, 2]
readerType = itk.ImageFileReader[imageType]
writerType = itk.ImageFileWriter[imageType]
reader = readerType.New()
writer = writerType.New()
reader.SetFileName("<input image file location>")
writer.SetFileName("D:/Output.png")
writer.SetInput( reader.GetOutput() )
writer.Update()发布于 2015-07-08 07:23:07
还有WrapITK,它是ITK的python包装,您可以使用它来编译(因此,您必须自己编译它,但至少不需要编写代码扭曲)。见http://kitware.com/blog/home/post/888,http://www.itk.org/Wiki/ITK/Wrapping,Installation.t。
但是请注意,可能不是所有的过滤器都包装好了(Filters,最近一次更新是在2009年,所以现在情况可能更好)。我遇到的唯一一个编译好的wrapITK包是Devide RE https://www.youtube.com/watch?v=-b1zS536R2M (如果我没有记错的话,它有一个旧版本的ITK,3.2 ),但也可能还有Slicer和vist运动会拥有它(http://www.itk.org/pipermail/insight-users/2009-August/031910.html)。
https://stackoverflow.com/questions/31285492
复制相似问题