2014-11-16 4 views
0

두 개의 3D itk 이미지를 등록하려고합니다. 고정 된 것은 240 * 240 * 285이고 움직이는 것은 80 * 80 * 17입니다. affineTransform을 사용하여 등록하려고했으나 이미지의 크기 차이가 너무 커서 등록이 작동하지 않는다는 사실을 발견했습니다. 그래서 나는 동영상을 리샘플링하고 선형 인터폴 레이터를 사용하여 고정 된 크기로 크기를 설정했습니다.itk 크기가 다른 두 3D 이미지를 등록하는 데 너무 느림

하지만 문제가 발생합니다. 등록 속도가 매우 느리고 한 세트의 데이터 등록을 완료하는 데 1 시간 이상이 소요됩니다. 하지만 40 세트가 있습니다!

누구나 빠른 등록 방법을 홍보 할 수 있습니까? 아니면 등록에 대해 잘못된 것이 있습니까?

optimizer->SetMaximumStepLength(0.01); 
optimizer->SetMinimumStepLength(0.0001); 
optimizer->SetNumberOfIterations(300); 

optimizer->MinimizeOn(); 

많은 감사, 아빈 이미지를 리샘플링

답변

1

당신이 경우에 필요하지 않을한다 : 여기

ResampleFilterType::Pointer movingResampler = ResampleFilterType::New(); 
InterpolatorType::Pointer movingInterpolator = InterpolatorType::New(); 
movingResampler->SetInput(movingImg); 
movingResampler->SetInterpolator(movingInterpolator); 
//set the parameters from the fixed image 
movingResampler->SetSize(fixedImg->GetLargestPossibleRegion().GetSize()); 
movingResampler->Update(); 

이 최적화의 코드입니다 : 여기

는 리샘플링의 코드 알맞은 보간기를 사용하십시오 (선형은 아마도 이미 잘 작동하고있을 것입니다).

확인할 사항은 처음에 이미지가 월드 좌표계에서 겹치는 경우입니다. 그렇지 않으면 초기화를 수행하여 서로 가깝게 가져와야합니다. 또한 회전 중심의 적절한 값을 제공해야합니다.

목표가 이미지를 등록하는 것이라면 1 분 안에 이러한 종류의 이미지를 등록 할 수있는 명령 행 인 elastix (http://elastix.isi.uu.nl/)를 사용하는 것이 좋습니다. elastix의 affine transform은 자동 초기화 옵션을 가지고 있습니다. 여러분을 시작할 수 있도록 elastix 매뉴얼을 체크 아웃하십시오.

ITK를 사용하는 경우 itk :: CenteredTransformInitializer를 사용하여 변환을 초기화하는 것이 좋습니다.

+0

예, itk :: CenteredTransformInitializer를 사용하여 변환을 초기화했습니다. 하지만 작동하지 않는 것 같습니다. 여기에 내 초기화 코드가있다. '// 초기화 초기화 도구를 초기화하십시오. TransformInitializerType :: 포인터 초기화 프로그램 = TransformInitializerType :: New(); \t 초기화 프로그램 -> SetTransform (변환); \t 초기화 프로그램 -> SetFixedImage (fixedImg); \t 초기화 프로그램 -> SetMovingImage (tmpMovingImg); \t 이니셜 라이저 -> MomentsOn(); \t initializer-> InitializeTransform(); ' – user3060215

+0

참고로 affineTransform에 3D 이미지를 등록하는 예제를 사용했습니다. [link] (http://public.kitware.com/cgi-bin/viewcvs.cgi/Insight/Examples/Registration/ImageRegistration20.cxx?revision=1.1&view=markup) – user3060215

+0

귀하의 경우에 효과가없는 것을 더 잘 정의 할 수 있습니다. . 그것은 사용 된 비용 함수의 종류에 의존하는 최적화 기의 설정 일 수 있습니다. –