Main Content

imregister

명암 기반 영상 정합

설명

예제

moving_reg = imregister(moving,fixed,transformType,optimizer,metric)은 참조 영상 fixed와 정합되도록 2차원 또는 3차원 회색조 영상 moving을 변환합니다. transformType은 수행할 변환 유형을 정의합니다. metric은 최적화할 영상 간 유사성의 정량적 측정을 정의합니다. optimizer는 메트릭 최적화 방법을 나타냅니다. 이 함수는 정합된 영상 moving_reg를 반환합니다.

[moving_reg,R_reg] = imregister(moving,Rmoving,fixed,Rfixed,transformType,optimizer,metric)은 공간 참조 영상 moving이 공간 참조 영상 fixed와 함께 정합되도록 변환합니다. RmovingRfixed는 세계 좌표상의 제한값과 movingfixed의 해상도를 설명하는 공간 참조 객체입니다.

___ = imregister(___,Name,Value)는 이름-값 쌍 인수를 하나 이상 추가 옵션으로 지정합니다.

예제

모두 축소

두 개의 영상을 읽어 들입니다. 이 예제에서는 무릎 MRI(자기 공명 영상) 영상 두 개를 사용합니다. 고정 영상은 스핀 에코 영상이고, 이동 영상은 반전 회복(inversion recovery) 기법이 사용된 스핀 에코 영상입니다. 두 개의 시상면 단층은 같은 시간에 수집했지만 약간 정렬되지 않았습니다.

fixed = dicomread('knee1.dcm');
moving = dicomread('knee2.dcm');

정렬되지 않은 영상을 표시합니다.

imshowpair(fixed, moving,'Scaling','joint')

Figure contains an axes. The axes contains an object of type image.

영상이 수집된 센서가 다르기 때문에 최적화 객체와 메트릭 객체를 생성하여 촬영 장치(모달리티)를 'multimodal'로 설정합니다.

[optimizer, metric] = imregconfig('multimodal')
optimizer = 
  registration.optimizer.OnePlusOneEvolutionary

  Properties:
         GrowthFactor: 1.050000e+00
              Epsilon: 1.500000e-06
        InitialRadius: 6.250000e-03
    MaximumIterations: 100
metric = 
  registration.metric.MattesMutualInformation

  Properties:
    NumberOfSpatialSamples: 500
     NumberOfHistogramBins: 50
              UseAllPixels: 1

문제가 전역 최댓값에 수렴하도록 하고 추가 반복을 허용하도록 최적화 객체의 속성을 조정합니다.

optimizer.InitialRadius = 0.009;
optimizer.Epsilon = 1.5e-4;
optimizer.GrowthFactor = 1.01;
optimizer.MaximumIterations = 300;

정합을 수행합니다.

movingRegistered = imregister(moving, fixed, 'affine', optimizer, metric);

정합된 영상을 봅니다.

figure
imshowpair(fixed, movingRegistered,'Scaling','joint')

Figure contains an axes. The axes contains an object of type image.

입력 인수

모두 축소

정합할 영상으로, 2차원 회색조 영상을 나타내는 숫자형 행렬 또는 3차원 회색조 볼륨을 나타내는 3차원 숫자형 배열로 지정됩니다.

데이터형: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

정합할 영상과 연결된 공간 참조 정보로,imref2d 객체 또는 imref3d 객체로 지정됩니다.

대상 방향의 참조 영상으로, 2차원 회색조 영상을 나타내는 숫자형 행렬 또는 3차원 회색조 볼륨을 나타내는 3차원 숫자형 배열로 지정됩니다. 참조 영상은 정합할 영상 moving과 동일한 차원 수를 가져야 합니다.

데이터형: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

참조(고정) 영상과 연결된 공간 참조 정보로, imref2d 객체 또는 imref3d 객체로 지정됩니다.

이동 영상에 적용되는 기하 변환으로, 다음 값 중 하나로 지정됩니다.

설명
'translation'2차원에서 (x,y) 평행 이동 또는 3차원에서 (x,y,z) 평행 이동.
'rigid'평행 이동과 회전으로 구성된 강체 변환.
'similarity'평행 이동, 회전, 스케일링으로 구성된 비반사적 유사 변환.
'affine'평행 이동, 회전, 스케일링, 전단으로 구성된 아핀 변환.

'similarity' 변환 유형과 'affine' 변환 유형은 항상 비반사적 변환을 사용합니다.

데이터형: char | string

유사도 메트릭을 최적화하기 위한 방법으로, RegularStepGradientDescent 또는 OnePlusOneEvolutionary 최적화 객체로 지정됩니다.

정합 중 최적화할 영상 유사도 메트릭으로, MeanSquares 또는 MattesMutualInformation 메트릭 객체로 지정됩니다.

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: 'DisplayOptimization',1은 최적화 세부 정보 표시 모드를 활성화합니다.

최적화 세부 정보 표시 플래그로, 'DisplayOptimization'과 함께 논리값 true 또는 false가 쉼표로 구분되어 지정됩니다. imregister에서 정합 과정 중 명령 창에 최적화 정보를 표시할 것인지 여부를 제어합니다.

데이터형: logical

최초에 적용하는 기하 변환으로, 'InitialTransformation'과 함께 affine2d 객체 또는 affine3d 객체가 쉼표로 구분되어 지정됩니다.

정합 과정 중 사용되는 피라미드 단계 수로, 'PyramidLevels'와 함께 양의 정수가 쉼표로 구분되어 지정됩니다.

예: 'PyramidLevels',4는 피라미드 단계 수를 4로 설정합니다.

데이터형: double

출력 인수

모두 축소

정합된 영상으로, 2차원 회색조 영상을 나타내는 2차원 숫자형 행렬 또는 3차원 회색조 볼륨을 나타내는 3차원 숫자형 배열로 반환됩니다. 변환 과정에서 채워지는 픽셀 중 원래 영상의 위치에 대응하지 않는 픽셀은 0이 됩니다.

정합된 영상과 연결된 공간 참조 정보로, imref2d 객체 또는 imref3d 객체로 반환됩니다.

  • imregtformimregister는 동일한 기본 정합 알고리즘을 사용합니다. imregistermoving을 리샘플링하는 추가 단계를 수행하여 imregtform으로 계산된 기하 변환 추정값에서 정합된 출력 영상을 생성합니다. movingfixed를 연결시키는 기하 변환을 원하는 경우 imregtform을 사용하십시오. 정합된 출력 영상을 얻으려면 imregister를 사용하십시오.

  • imregister를 호출하기 전에 imregconfig 함수를 사용하여 optimizermetric을 생성하십시오. 최적화 기반 영상 정합에서 만족할 만한 결과를 얻으려면 일반적으로 정합하는 영상 쌍의 최적화 객체 설정 또는 메트릭 객체 설정을 수정해야 합니다. imregconfig 함수가 디폴트 구성을 제공하지만 이는 설정의 시작점으로만 간주되어야 합니다. 예를 들어, 최적화 객체에서 반복 횟수를 늘리거나 최적화 객체의 스텝 크기를 줄이거나 확률적 메트릭 값의 샘플 수를 변경하면, 성능이 저하되는 대신 정합이 어느 정도 개선됩니다. 수정할 수 있는 여러 파라미터에 대한 자세한 내용은 imregconfig의 출력값을 참조하십시오.

  • 영상 간의 공간적 스케일링 차이가 10%를 넘으면 영상을 정합하기 전에 imresize를 사용하여 크기를 조정하십시오.

  • imshowpair 또는 imfuse를 사용하여 정합 결과를 시각화하십시오.

  • imregister를 자동화된 워크플로에서 사용하여 여러 영상을 정합할 수 있습니다.

  • 정합할 영상에 대한 공간 참조 정보가 있는 경우, 공간 참조 객체를 사용하여 imregister에 정보를 지정하십시오. 이렇게 하면 스케일링 차이가 감안될 수 있기 때문에 imregister가 더 빠르게 더 나은 결과로 수렴됩니다.

R2012a에 개발됨