2016-11-29 20 views
0

그래서 MRI 이미지 더미에 CT 이미지 스택을 등록하려고하면 itk-snap에서이 변환 행렬을 얻습니다.통찰력 itk 이미지 변환 행렬을 matlab의 imwarp에서 사용되는 형식으로 변환하는 방법

T = 

2.0523 -0.0277 0.1518   0 
0..0405 0.3059   0 
-0.1249 -0.2292 1.5095   0 
270.7916 280.5018 148.7597 1.0000 

는 지금이

Tform = affine3d(T); 
CT_stack_warp= imwarp(CT_stack,Rmoving,Tform,'OutputView',Rfixed); 

같은 매트랩 imwarp 사용 등록, 무언가를 수행 할 그러나 문제는 당신이 matlab에에게 픽셀 크기와 슬라이스 두께의 정보를 공급하면, 당신이없는 돈이다 T 매트릭스에 명시된대로 비율을 조정하거나 번역해야합니다. 내 질문은 원본 T를 Matlab에서 사용해야하는 T로 변환하는 방법입니다. 특성을 가진 당신이 정보를 필요로하는 경우에

,

Rmoving = 

imref3d : 속성

 XWorldLimits: [0.2441 250.2441] 
     YWorldLimits: [0.2441 250.2441] 
     ZWorldLimits: [0.5000 185.5000] 
      ImageSize: [512 512 185] 
PixelExtentInWorldX: 0.4883 
PixelExtentInWorldY: 0.4883 
PixelExtentInWorldZ: 1 
ImageExtentInWorldX: 250 
ImageExtentInWorldY: 250 
ImageExtentInWorldZ: 185 
    XIntrinsicLimits: [0.5000 512.5000] 
    YIntrinsicLimits: [0.5000 512.5000] 
    ZIntrinsicLimits: [0.5000 185.5000] 

Rfixed = 

imref3d :

 XWorldLimits: [0.4063 260.4063] 
     YWorldLimits: [0.4063 260.4063] 
     ZWorldLimits: [0.7500 192.7500] 
      ImageSize: [320 320 128] 
PixelExtentInWorldX: 0.8125 
PixelExtentInWorldY: 0.8125 
PixelExtentInWorldZ: 1.5000 
ImageExtentInWorldX: 260 
ImageExtentInWorldY: 260 
ImageExtentInWorldZ: 192 
    XIntrinsicLimits: [0.5000 320.5000] 
    YIntrinsicLimits: [0.5000 320.5000] 
    ZIntrinsicLimits: [0.5000 128.5000] 

감사합니다!

+0

MATLAB이 처리 할 수없는 'T' 매트릭스의 문제점은 무엇입니까? 귀하의 질문에 명확하지 않습니다. – Adriaan

+0

원본 T 행렬의 번역 값을 보면, 즉. 270, 280, Matlab은 이미지 공간에서 이미지를 처리하므로 Matlab에서 이미지를 많이 옮겨야합니다. 누군가가 다른 좌표 시스템이나 itk 및 matlab에 사용되는 파이프 라인에 익숙한 있는지 궁금합니다. –

답변

0

세계에 대한 현재 ITK 색인 transform 및 그 뒤에있는 일부 background. 의학 이미징에 사용 된 coordinate systems에 대한 추가 설명.

Matlab의 WorldLimits으로 판단하면 이미지를 Matlab으로 읽을 때 world origin이 무시됩니다. 이것은 ITK-SNAP (또는 다른 적절하게 행동하는 소프트웨어)에 의해 계산 된 변환 행렬을 효과적으로 쓸모 없게 만듭니다.