2017-10-11 4 views
0

저는 방금 matlab에서 python으로 옮겼습니다. 그래서 이것은 단순한 질문인데도 simpleitk와 미안을 사용할 수 있습니다.simpleitk를 사용하는 방법 역 변위 필드를 얻으십시오

나는 심플리 트 키를 사용하여 귀신을 등록한 후 변환 tx를가집니다. 나는

disp_field = tx.GetDisplacementField() 
disp_field_inv = tx.GetInverseDisplacementField() 

그것은 disp_field 내가 --- 256 * 256 * 176의 이미지 볼륨을 필요로 정확히 무엇을 밝혀 다음을 수행하여 변위 필드와 그 역을 취득하고 싶습니다. 그러나 disp_field_inv는 빈 배열입니다. 아무도 이유를 아나요?

는 그럼 난 다음,

disp_field_inv = sitk.InverseDisplacementField(disp_field,disp_field.GetSize(),disp_field.GetOrigin(),disp_field.GetSpacing(), 
              subsamplingFactor=16) 

시도하지만 파이썬은 영원히 같이 실행됩니다. 아무도 그것을 제대로하는 방법을 알고 있습니까? 다음

답변

0

InvertDisplacementField 절차 인터페이스를 실행하기위한 사양입니다

Image itk::simple::InvertDisplacementField (const Image & image1, 
     uint32_t maximumNumberOfIterations = 10u, 
     double  maxErrorToleranceThreshold = 0.1, 
     double  meanErrorToleranceThreshold = 0.001, 
     bool enforceBoundaryCondition = true) 

그래서 2 ~ 5 당신이 인터페이스를 전달하는 의미 매개 변수로 당신에 의해

disp_field.GetSize(),disp_field.GetOrigin(),disp_field.GetSpacing(), subsamplingFactor=16 

을 전달 생각하지 무엇을 기대 되니?

disp_field_inv = sitk.InverseDisplacementField(disp_field)를 실행하고 결과를 반복 할 경우 참조하십시오!

+0

답장을 보내 주셔서 감사합니다. 전에 sitk.InverseDisplacementField (disp_field) 시도하고 그냥 수렴하지 것입니다. –

+0

sitk.InverseDisplacementField (disp_field, 1) 즉 10 번이 아닌 하나의 반복으로 실행 해 보았습니까? –