주요 콘텐츠

imregcorr

상호상관을 사용하여 두 개의 2차원 영상을 정렬하는 기하 변환 추정

설명

tform = imregcorr(moving,fixed)는 기울기 상관을 사용하여 영상 moving을 참조 영상 fixed에 맞춰 정렬하는 기하 변환을 추정합니다.

예제

tform = imregcorr(moving,Rmoving,fixed,Rfixed)는 영상 moving을 참조 영상 fixed에 맞춰 정렬하는 기하 변환을 추정합니다. RmovingRfixedmoving 영상과 fixed 영상에 대한 공간 정보를 각각 포함하는 공간 참조 객체입니다. 기하 변환 tform은 세계 좌표계상의 점별 매핑을 정의합니다.

tform = imregcorr(___,tformType)은 변환 유형 tformType도 지정합니다.

tform = imregcorr(___,Name=Value)에서는 이름-값 인수를 사용하여 상호상관 방법을 위상 상관으로 지정하고 위상 상관에 대한 윈도우 적용을 활성화하거나 비활성화할 수 있습니다.

[tform,peakcorr] = imregcorr(___)은 피크 상관 값 peakcorr도 반환합니다.

예제

모두 축소

참조 영상을 작업 공간으로 읽어 들입니다.

fixed  = imread("cameraman.tif");

고정 영상을 스케일링하고 회전시켜 합성 이동 영상을 만듭니다.

scaleFactor = 2.3;
theta = 20;
translation = [0 0];
tform = simtform2d(scaleFactor,theta,translation);
moving = imwarp(fixed,tform);

이동 영상에 합성 잡음을 추가합니다.

moving = moving + uint8(10*rand(size(moving)));

고정 영상과 이동 영상을 나란히 표시합니다.

imshowpair(fixed,moving,"montage")

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

imregcorr을 사용하여 영상을 정렬하는 데 필요한 변환을 추정합니다.

tformEstimate = imregcorr(moving,fixed);

추정된 기하 변환을 이동 영상에 적용합니다. "OutputView" 이름-값 인수를 지정하여 참조 영상과 크기 및 세계 제한값이 동일한 정합된 영상을 가져옵니다.

Rfixed = imref2d(size(fixed));
movingReg = imwarp(moving,tformEstimate,"OutputView",Rfixed);

원본 영상과 정합된 영상을 나란히 표시하여 정합을 확인합니다. 그런 다음, 영상에서 차이가 나는 영역을 강조 표시하기 위해 "falsecolor" 옵션을 사용하여 정합된 영상을 원본 영상 위에 겹쳐진 상태로 표시합니다.

imshowpair(fixed,movingReg,"montage")

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

imshowpair(fixed,movingReg,"falsecolor");

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

입력 인수

모두 축소

이동 영상, 즉 정합할 영상으로, 회색조 영상, 이진 영상 또는 RGB 영상으로 지정됩니다. imregcorr은 처리 전에 rgb2gray를 사용하여 RGB 영상을 회색조 영상으로 변환합니다.

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

목표 방향에 놓인 참조 영상으로, 회색조 영상, 이진 영상 또는 RGB 영상으로 지정됩니다. imregcorr은 처리 전에 rgb2gray를 사용하여 RGB 영상을 회색조 영상으로 변환합니다.

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

이동 영상의 공간 참조 정보로, imref2d 객체로 지정됩니다.

고정 영상의 공간 참조 정보로, imref2d 객체로 지정됩니다.

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

설명
"translation"

평행 이동 변환

공간 참조 객체 RmovingRfixed"translation" 옵션을 사용할 경우, 입력 영상은 세계 좌표상에서의 픽셀 범위가 동일해야 합니다.

"rigid"

강체 변환: 평행 이동 및 회전

공간 참조 객체 RmovingRfixed"rigid" 옵션을 사용할 경우, 입력 영상은 세계 좌표상에서의 픽셀 범위가 동일해야 합니다.

"similarity"

유사 변환: 평행 이동, 회전, 등방성 스케일링

위상 상관 방법에 "similarity" 옵션을 사용할 경우, imregcorr은 1/4보다 작거나 4보다 큰 스케일링 차이를 감지하지 않습니다.

데이터형: char | string

이름-값 인수

모두 축소

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

예: tform = imregcorr(moving,fixed,Method="phasecorr")은 위상 상관을 사용합니다.

R2024b 이후

상관 방법으로, "gradcorr"(기울기 상관의 경우) 또는 "phasecorr"(위상 상관의 경우)로 지정됩니다. 입력 영상 중 하나가 벡터이면 위상 상관을 사용하십시오.

주파수 영역에서 스펙트럼 누설 효과를 억제하기 위한 윈도우 적용 여부로, 숫자형 또는 논리값 1(true) 또는 0(false)으로 지정됩니다. Windowtrue이고 Method"phasecorr"이면 imregcorr 함수는 블랙맨 필터를 사용하여 윈도우를 적용합니다. Method"gradcorr"이면 이 함수는 Window 인수를 무시합니다.

위상 상관의 정합 결과 안정성을 높이려면 Windowtrue로 지정하십시오. 하지만 이들 영상의 공통 특징이 경계를 따라 존재한다면, Windowfalse로 설정했을 때 더 나은 정합 결과가 나오는 경우도 있습니다.

출력 인수

모두 축소

기하 변환으로, 변환 유형 tformType에 따라 기하 변환 객체로 반환됩니다.

tformType기하 변환 객체
"translation"transltform2d
"rigid"rigidtform2d
"similarity"simtform2d

두 영상 간의 피크 상관 값으로, [0, 1] 범위의 숫자로 반환됩니다. 피크 상관 값이 클수록 추정된 기하 변환을 더 신뢰할 수 있다는 의미입니다.

  • 영상이 double형이면, 정합 전에 im2single을 사용하여 영상을 single형으로 형변환하여 성능을 개선할 수 있습니다. double형 입력 영상의 경우 알고리즘은 FFT를 double형으로 계산합니다.

  • 기울기 상관 알고리즘과 위상 상관 알고리즘에는 차이가 있으므로, 피크 상관 값 peakcorr을 알고리즘 성능 비교를 위한 메트릭으로 사용해서는 안 됩니다.

참고 문헌

[1] Reddy, B. S. and Chatterji, B. N. "An FFT-Based Technique for Translation, Rotation, and Scale-Invariant Image Registration." IEEE Transactions on Image Processing, Vol. 5, No. 8, August 1996.

[2] Tzimiropoulos, Georgios, Vasileios Argyriou, Stefanos Zafeiriou, and Tania Stathaki. “Robust FFT-Based Scale-Invariant Image Registration with Image Gradients.” IEEE Transactions on Pattern Analysis and Machine Intelligence 32, no. 10 (October 2010): 1899–1906. https://doi.org/10.1109/TPAMI.2010.107.

확장 기능

모두 확장

버전 내역

R2014a에 개발됨

모두 확장