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 object. The axes object 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);

정합된 영상을 봅니다.

imshowpair(fixed,movingRegistered,"Scaling","joint")

Figure contains an axes object. The axes object 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 메트릭 객체로 지정됩니다.

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

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

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

데이터형: logical

초기 기하 변환으로, affinetform2d 객체 또는 affinetform3d 객체로 지정됩니다.

참고

InitialTransformationaffine2d 객체 또는 affine3d 객체로 지정할 수도 있습니다. 그러나 이러한 객체는 권장되지 않습니다. 자세한 내용은 호환성 관련 고려 사항 항목을 참조하십시오.

정합 과정 중 사용되는 피라미드 단계 수로, 양의 정수로 지정됩니다.

예: "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에 개발됨

모두 확장