这个是一个百度文库:
https://wenku.baidu.com/view/c90bc13490c69ec3d5bb75e2.html
这个是ITK的官网例子:
https://itk.org/Doxygen/html/WikiExamples_2Iterators_2ImageRegionIterator_8cxx-example.html
迭代器读写,比用三个for循环更快;
//遍历图像像素值
floatImageType::Pointer Image = vtkToitkImageFiltergray->GetOutput();
typedef itk::ImageRegionIterator<floatImageType > FieldIterator;
FieldIterator fieldIter( Image, Image->GetLargestPossibleRegion());//创建一个像素迭代器
fieldIter.GoToBegin();//迭代器指向图像数组开始
floatImageType::ValueType value;
while( !fieldIter.IsAtEnd() )//不到最后一个点,一直循环下去
{
value = fieldIter.Get();//获得该点坐标
if(value > 200)
fieldIter.Set(0);//重新赋值
++fieldIter;
}
最后输出改变后的 Image图像。