InsightSoftwareConsortium / InsightSoftwareConsortium/ITKCLEsperanto

GPU version Demons: the size of output is different from that of input image

Open
#11 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
4
Forks
3
PR merge metrics
No merged PRs in 30d

Description

I am using GPU Demons for myself project. I find a strange bug: the size of input (fix and moving image) is (174, 256, 256), but the size of output is (87, 128, 128).

The main code is:

RegistrationFilterType::Pointer DemonsFilter = RegistrationFilterType::New();
CommandIterationUpdate::Pointer observer = CommandIterationUpdate::New();
DemonsFilter->AddObserver(itk::IterationEvent(), observer);
DemonsFilter->SetFixedImage(fixImageCPUToGPUFilter->GetOutput());
DemonsFilter->SetMovingImage(movingImageCPUToGPUFilter->GetOutput());
DemonsFilter->GetOutput()->SetRequestedRegionToLargestPossibleRegion();
auto sizexxx = gpuDisplacementField->GetLargestPossibleRegion().GetSize();
if (i != 0)
{
DemonsFilter->SetInitialDisplacementField(gpuDisplacementField);
}
else
{
DemonsFilter->SetInitialDisplacementField(nullptr);
}

DemonsFilter->SetNumberOfIterations(nIterations[i]);
DemonsFilter->SetStandardDeviations(1.0);
DemonsFilter->Update();
auto fixImageSize = DemonsFilter->GetFixedImage()->GetLargestPossibleRegion().GetSize();
std::cout << "fix image size: " << fixImageSize << std::endl;
auto movingImageSize = DemonsFilter->GetMovingImage()->GetLargestPossibleRegion().GetSize();
std::cout << "moving image size: " << movingImageSize << std::endl;
auto displacementSize = DemonsFilter->GetOutput()->GetLargestPossibleRegion().GetSize();
std::cout << "displacement size: " << displacementSize << std::endl;
And the information in the console is:

```
fix image size: [174, 256, 256]
moving image size: [174, 256, 256]
displacement size: [87, 128, 128]
```

Why the size of displacement is not (174, 256, 256) ??
Moreover, I have visualized the displacement field, and the result is just random noise. Also, I have checked the input fix and moving image, and they are correct.
How can I make the demons registration correct?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.