我想计算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() 有什么方法可以提取它吗?我正在寻找它,但我没有积极的结果!
非常感谢
安东尼奥
答案 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