1D свертка с использованием гауссовского ядра - PullRequest
0 голосов
/ 16 ноября 2011

Моя цель - рассчитать вычисления в каждой строке 2D-изображения (в направлении x). Следуя совету Кори, я пытаюсь использовать ConvolutionImageFilter и создать ядро ​​со значениями Гаусса I.рассчитать раньше.Я посмотрел на этот пример (http://www.itk.org/Wiki/ITK/Examples/ImageProcessing/ConvolutionImageFilter), и мой вопрос заключается в том, как включить значения фильтра Гаусса в ядро, я попытался с помощью приведенного ниже кода, и он компилируется, но, кажется, выполнение не заканчивается, когда я обновляюconvolutionFilter ... Из-за этого я думаю, что я делаю что-то не так. Мой код приведен ниже и его не так много, если кто-то может оказать некоторую помощь, я был бы очень признателен за это !!!!.

typedef itk::ConvolutionImageFilter <ImageType> ConvFilterType;

ImageType::Pointer kernel = ImageType::New();
CreateKernel(kernel, Gaussian , 256);

//Convolve image with kernel
ConvFilterType::Pointer convolutionFilter = ConvFilterType::New();
convolutionFilter->SetInput(Li_itk);
convolutionFilter->SetImageKernelInput(kernel);
convolutionFilter->Update();

void Reg_image_v2::CreateKernel(Reg_image_v2::ImageType::Pointer kernel, double *Gaussian, unsigned int width) {

ImageType::IndexType start;
start.Fill(0);

ImageType::SizeType size;
    size[0] = width;
size[1] = 1;

ImageType::RegionType region;
region.SetSize(size);
region.SetIndex(start);

kernel->SetRegions(region);
kernel->Allocate();

ImageType::IndexType pixelIndex;
for (int i = 0 ; i < width ; i ++){
    pixelIndex[0] = i ;
    pixelIndex[1] = 0 ;
    kernel->SetPixel(pixelIndex,Gaussian[i]);
}

itk::ImageRegionIterator<ImageType> imageIterator(kernel, region);

while(!imageIterator.IsAtEnd()) 

{
//imageIterator.Set??

++imageIterator; //operator++  increments the iterator one position in the positive direction
}


} // end createKernel

Антонио

1 Ответ

1 голос
/ 12 декабря 2011

Вы смотрели на itkGaussianOperator?http://www.itk.org/Wiki/ITK/Examples/Operators/GaussianOperator

...