itk x和y图像渐变的分量

时间:2011-09-22 08:37:28

标签: c++ visual-c++ gradient itk

我想计算2D图像渐变的x和y分量。在MATLAB中使用 [dT2,dT1] = gradient(T)计算;

ReaderType::Pointer T_g     // image 
FilterType::Pointer gradientFilter = FilterType::New();
gradientFilter->SetInput( T_g->GetOutput());
gradientFilter->Update();

有了这句话,我得到了结果,但我希望得到x分量和y分量 gradientFilter-> GetOutput() 有什么方法可以提取它吗?我正在寻找它,但我没有积极的结果!

非常感谢

安东尼奥

2 个答案:

答案 0 :(得分:1)

gradientFilter的输出将是矢量图像。我从你的描述中假设它是 一张2D图像!

ImageType::IndexType index;
index[0]=xcoord;
index[1]=ycoord;

gradientFilter->GetOutput()->GetPixel(index)[0]; // will return first component of xcoord,ycoord

答案 1 :(得分:1)

http://www.vtk.org/Wiki/ITK/Examples

http://www.vtk.org/Wiki/ITK/Examples/ImageProcessing/NthElementImageAdaptor

模板 class itk :: NthElementImageAdaptor< TImage,TOutputPixelType>

将图像呈现为由其像素的第N个元素组成。

它假设像素属于容器类型,并且在其API中定义了operator [](unsigned int)。

根据C ++默认转换规则后的输入和输出图像类型执行附加转换。

Wiki示例:

All Examples

Extract a component of an itkImage with pixels with multiple components

Process the nth component/element of a vector image