이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
영상에 2차원 공간 변환 적용
imtransform
은 권장되지 않습니다. imwarp
를 대신 사용하십시오.
은 B
= imtransform(A
,tform
)tform
으로 정의된 2차원 변환에 따라 영상 A
를 변환하고 변환된 영상 B
를 반환합니다.
A
가 컬러 영상이면 imtransform
은 각 색 채널에 동일한 2차원 변환을 적용합니다. 마찬가지로, A
가 볼륨 영상이거나 3차원 이상의 영상 시퀀스이면 imtransform
은 동일한 2차원 변환을 더 높은 차원에서 모든 2차원 평면에 적용합니다. 임의 차원의 배열 변환의 경우 tformarray
를 사용하십시오.
는 이름-값 쌍을 사용하여 공간 변환의 다양한 측면을 제어합니다.B
= imtransform(___,Name,Value
)
회색조 영상에 가로 전단을 적용합니다.
I = imread('cameraman.tif'); tform = maketform('affine',[1 0 0; .5 1 0; 0 0 1]); J = imtransform(I,tform); imshow(J)
사영 변환을 사용하여 정사각형을 사변형에 매핑합니다. 입력 영상이 꼭짓점이 (0 0), (1 0), (1 1), (0 1)인 단위 정사각형을 채우도록 입력 좌표 시스템을 설정합니다.
I = imread('cameraman.tif');
udata = [0 1]; vdata = [0 1];
꼭짓점이 (-4 2), (-8 3), (-3 -5), (6 3)인 사변형으로 변환합니다.
tform = maketform('projective',[ 0 0; 1 0; 1 1; 0 1],... [-4 2; -8 -3; -3 -5; 6 3]);
회색으로 채우고 쌍삼차 보간을 사용합니다. 출력 크기를 입력 크기와 같게 만듭니다.
[B,xdata,ydata] = imtransform(I,tform,'bicubic', ... 'udata',udata,... 'vdata',vdata,... 'size',size(I),... 'fill',128); subplot(1,2,1); imshow(I,'XData',udata,'YData',vdata) subplot(1,2,2); imshow(B,'XData',xdata,'YData',ydata)
항공 사진을 MATLAB® 작업 공간으로 읽어 들인 후 이를 표시합니다.
unregistered = imread('westconcordaerial.png');
figure
imshow(unregistered)
정사 사진을 MATLAB 작업 공간으로 읽어 들인 후 이를 표시합니다.
figure
imshow('westconcordorthophoto.png')
미리 선택해 둔 제어점을 불러옵니다.
load westconcordpoints
점을 사용하여 사영 변환을 위한 변환 구조체를 만듭니다.
t_concord = cp2tform(movingPoints,fixedPoints,'projective');
정사 사진의 너비와 높이를 가져오고, 변환을 수행한 다음, 결과를 확인합니다.
info = imfinfo('westconcordorthophoto.png'); registered = imtransform(unregistered,t_concord,... 'XData',[1 info.Width],'YData',[1 info.Height]); figure imshow(registered)
영상 정합 imtransform
함수는 변환된 영상이 가능한 한 많이 보여지게 하기 위해 출력 영상의 원점을 자동으로 이동합니다. imtransform
을 사용하여 영상 정합을 수행할 경우 구문 B =
imtransform(A,tform)
은 예기치 않은 결과를 낳을 수 있습니다. 출력 영상의 공간 위치를 제어하려면 XData
와 YData
를 명시적으로 설정하십시오.
순수 평행 이동. imtransform
호출에서 XData
와 YData
를 지정하지 않은 경우, 순수 평행 이동 변환을 사용하여 imtransform
함수를 호출하면 입력 영상과 완전히 같은 출력 영상이 생성됩니다. 예를 들어, 출력 영상이 입력 영상과 크기가 같게 하여 입력 영상에 대한 상대적인 평행 이동이 드러나도록 하려면 다음 구문처럼 imtransform
을 호출하십시오.
B = imtransform(A,T,'XData',[1 size(A,2)],... 'YData',[1 size(A,1)])
이 항목에 대한 자세한 내용은 Perform Simple 2-D Translation Transformation 항목을 참조하십시오.
변환 속도. XData
와 YData
를 사용하여 B
에 대한 출력 공간 위치를 지정하지 않을 경우 imtransform
은 함수 findbounds
를 사용하여 위치를 자동으로 추정합니다. 아핀 변환, 사영 변환과 같이 일반적으로 사용되는 일부 변환에 대해, 빠른 순방향 매핑 옵션으로 findbounds
를 사용할 수 있습니다. fitgeotrans
에 의해 계산되는 다항식 변환과 같이 순방향 매핑이 없는 변환의 경우, findbounds
가 실행되는 시간이 훨씬 더 오래 걸릴 수 있습니다. 이러한 변환에 대해 XData
와 YData
를 직접 지정하면 imtransform
을 실행하는 시간이 눈에 띄게 줄어들 수 있습니다.
자르기. findbounds
를 사용한 XData
와 YData
의 자동 추정에서 출력 영상이 잘리는 경우가 있습니다. 잘림을 방지하려면 XData
와 YData
를 직접 설정하십시오.
임의 차원의 변환. imtransform
을 사용할 때는 tform
에 대해 2차원 변환을 사용하십시오. 임의 차원의 배열 변환의 경우 tformarray
를 참조하십시오.
checkerboard
| cp2tform
| imresize
| imrotate
| makeresampler
| maketform
| tformarray