我正在使用ITK包装器(ITK,而不是simpleITK)来实现原型生成、CT输出、自动处理。我需要计算三维物体的厚度图,但这个功能不存在,因为-是在ITK。管道很简单:
我的问题是,itk::RegionalMaximaImageFilter的行为不像预期的那样(不保留分支)。因此,我想编写一个自定义函数,以检查中央像素是否是3x3x3滑动内核的邻接点的>=。
我的想法是利用优化的itk::RegionalMaximaImageFilter迭代器(请看这里)。但是,即使这与C++完美地工作在一起,我也无法找到一个与Python相适应的方法(不使用cython包装c代码)。
发布于 2018-03-29 14:08:21
Python包装不是用来访问迭代器,而是调用现有的类。您可以做的是用C++编写一个类,然后按照这创建一个模块,这个模块可以从Python包装和使用。
发布于 2018-04-02 14:05:02
“我想要编写一个自定义函数,检查中央像素是否为3x3x3滑动内核的邻居>=。”
这与灰度形态学的膨胀有关,它是邻域内所有像素的最大值。在SimpleITK中(因为您标记了帖子),您可以简单地写:
isMaximumImg = (sitk.GrayscaleDilateImageFilter(inImg, 1) == inImg)
这将导致一幅图像,如果像素等于邻域中的最大值,则输出值为1,否则为0。这也应该能够通过组成类似的过滤器管道来用ITK实现。
https://stackoverflow.com/questions/49557893
复制相似问题