2017-11-18 4 views
0

이 함수에 대한 파이썬 문서를 찾을 수 없습니다.

다음 코드를 시도했지만 출력이 잘못되었습니다.Python에서 SimpleITK.WarpImageFilter 함수를 사용하는 방법

warp = sitk.WarpImageFilter() 
warp.SetInterpolator(sitk.sitkLinear) 
out = warp.Execute(reference_img, transform_img) 

정확하게 reference_img를 제공하지만 변환 된 이미지는 제공하지 않습니다.

이 기능을 사용해 본 적이 있습니까? 이 문제에 대해 저를 도울 수 있습니까?

+0

리 샘플 이미지 필터를 사용해 보셨습니까? – blowekamp

+0

리 샘플 이미지 필터에는 설정 방법을 알지 못하는 참조 이미지가 필요합니다. –

답변

0

다른 모든 SimpleITK 필터와 마찬가지로 WarpImageFilter는 SimpleITK 빌드 인프라에서 엄격하게 테스트됩니다. 필터 배치에는 결과의 유효성을 검사하고 언어 간 동작을 검증하는 다중 테스트에 대한 설명이 포함됩니다. 또한 SimpleITK에서 모든 필터는 코드 생성 프로세스 인 SimpleITK를 통해 수행되는 여러 가지 동작에 대한 일관성을 자동으로 테스트합니다.

이제 ResampleImageFilter은 WarpImageFilter보다 선호되는 방법입니다. 임의의 변환을 적용하여 이미지를 리샘플링합니다. 여기에는 DisplacementFieldTransform에 변위 필드 이미지가 있습니다. 이것은 변위 필드를 취하는 WarpImageFilter과 다릅니다.

"참조 이미지"에 약간의 혼란이있는 것 같습니다. 리 샘플과 워프 필터는 이미지의 출력 정보를 알아야합니다. 여기에는 출력 원점, 출력 크기, 출력 간격 및 출력 방향이 포함됩니다. 수동 또는 개별적으로 "참조 이미지"에서 설정할 수 있습니다. 같은 일을하는 ResampleImageFilter.SetRefenceImage()WarpImageFilter.SetOutputParametersFromImage 방법이 있습니다. 참조 이미지는 선택 사항입니다. SimpleITK 테스트 데이터를 활용 WarpImageFilter

샘플 사용 : 여기

img = sitk.ReadImage("cthead1-Float.mha") 
dis = sitk.ReadImage("cthead1-dis1.nrrd") 
warper = sitk.WarpImageFilter() 
warper.SetOutputParameteresFromImage(img) 
out = warper.Execute(img,dis) 

는 ResampleImageFilter으로 수행 동일한 작업입니다. 변위 필드 이미지를 변환 할 때 float64로 변환해야합니다.

resampler = sitk.ResampleImageFilter() 
resampler.SetReferenceImage(img) 
dis_tx = sitk.DisplacementFieldTransform(sitk.Cast(dis,sitk.sitkVectorFloat64)) 
resampler.SetTransform(dis_tx) 
out = resampler.Execute(img) 
관련 문제