Main Content

imregtform

두 개의 2차원 또는 3차원 영상을 정렬하는 기하 변환 추정

설명

예제

tform = imregtform(moving,fixed,tformType,optimizer,metric)은 이동 영상 moving과 고정 영상 fixed를 정렬하는 기하 변환을 추정합니다. tformType은 추정할 변환 유형을 정의합니다. optimizer는 메트릭 최적화 방법을 설명합니다. metric은 최적화할 영상 간의 유사성에 대한 정량적 측정값을 정의합니다.

tform = imregtform(moving,Rmoving,fixed,Rfixed,tformType,optimizer,metric)moving 영상과 fixed 영상에 연결된 공간 참조 객체를 지정하는 RmovingRfixed를 사용하여 기하 변환을 추정합니다. 출력값 tform은 공간 참조 객체 RmovingRfixed에 의해 정의된 단위로 추정된 기하 변환 객체입니다.

tform = imregtform(___,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;

정합할 영상(moving)을 참조 영상(fixed)에 매핑할 기하 변환을 구합니다.

tform = imregtform(moving,fixed,"affine",optimizer,metric)
tform = 
  affinetform2d with properties:

    Dimensionality: 2

                 A: [ 1.0408   -0.0768   -0.6511
                     -0.0429    1.0374  -10.1764
                           0         0    1.0000]

imwarp 함수를 사용하여, 변환을 정합 중인 영상(moving)에 적용합니다. 이 예제에서는 변환된 영상을 만들 때 참조 영상의 세계 제한 값과 해상도를 보존하기 위해 "OutputView" 이름-값 인수를 사용합니다.

movingRegistered = imwarp(moving,tform,"OutputView",imref2d(size(fixed)));

정합된 영상을 봅니다.

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

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

입력 인수

모두 축소

정합할 영상으로, 2차원 회색조 영상 또는 3차원 회색조 볼륨으로 지정됩니다.

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

대상 방향의 참조 영상으로, 2차원 회색조 영상 또는 3차원 회색조 볼륨으로 지정됩니다.

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

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

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

기하 변환 유형으로, 다음 값 중 하나로 지정됩니다.

설명
"translation"평행 이동 변환
"rigid"강체 변환: 평행 이동 및 회전
"similarity"유사 변환: 평행 이동, 회전, 등방성 스케일링
"affine"아핀 변환: 평행 이동, 회전, 비등방성 스케일링, 전단

"similarity""affine" 변환 유형은 반사를 지원하지 않습니다.

데이터형: char | string

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

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

이름-값 인수

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

예: PyramidLevels=4는 4개의 피라미드 단계를 사용합니다.

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

예: "PyramidLevels",4는 4개의 피라미드 단계를 사용합니다.

정합 과정 중 명령 창에 최적화 정보를 표시하며, 논리값 true 또는 false로 지정됩니다.

데이터형: logical

초기 기하 변환으로, 표에 나열된 기하 변환 객체로 지정됩니다.

기하 변환 객체설명
2차원 기하 변환
transltform2d평행 이동 변환
rigidtform2d강체 변환: 평행 이동 및 회전
simtform2d유사 변환: 평행 이동, 회전, 등방성 스케일링
affinetform2d아핀 변환: 평행 이동, 회전, 비등방성 스케일링, 반사, 전단
3차원 기하 변환
transltform3d평행 이동 변환
rigidtform3d강체 변환: 평행 이동 및 회전
simtform3d유사 변환: 평행 이동, 회전, 등방성 스케일링
affinetform3d아핀 변환: 평행 이동, 회전, 비등방성 스케일링, 반사, 전단

참고

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

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

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

출력 인수

모두 축소

기하 변환으로, 영상의 차원과 변환 유형 tformType에 따라 기하 변환 객체로 반환됩니다.

변환 유형

2차원 기하 변환 객체3차원 기하 변환 객체
"translation"transltform2dtransltform3d
"rigid"rigidtform2drigidtform3d
"similarity"simtform2dsimtform3d
"affine"affinetform2daffinetform3d

  • 사용 가능한 공간 참조 정보가 있는 경우, 공간 참조 객체를 사용하여 imregtform에 이 정보를 제공해야 합니다. 이 정보를 제공하면 스케일링 차이가 감안될 수 있기 때문에 imregtform이 더 빠르게 더 나은 결과로 수렴됩니다.

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

  • 최적화 기반 영상 정합에서 만족할 만한 결과를 얻으려면 일반적으로 정합하는 영상 쌍의 최적화 객체 설정 또는 메트릭 객체 설정을 수정해야 합니다. imregconfig 함수가 디폴트 구성을 제공하지만 이는 설정의 시작점으로만 간주되어야 합니다. 수정할 수 있는 여러 파라미터에 대한 자세한 내용은 imregconfig의 출력값을 참조하십시오.

버전 내역

R2013a에 개발됨

모두 확장