affineOutputView
설명
예제
서로 다른 출력 보기 스타일을 사용하여 영상에 워핑 적용하기
영상을 읽어 들여 표시합니다. 영상의 공간 범위를 보려면 좌표축을 표시하십시오.
A = imread("kobi.png"); A = imresize(A,0.25); iptsetpref("ImshowAxesVisible","on") imshow(A)
2차원 아핀 변환을 만듭니다. 이 예제에서는 [1.2, 2.4] 범위 내의 인자로 스케일링하고, [-45, 45]도 범위 내의 각도로 회전하며, [100, 200]픽셀 범위 내의 거리로 가로 평행 이동하는 무작위 변환을 만듭니다.
tform = randomAffine2d("Scale",[1.2,2.4],"XTranslation",[100 200],"Rotation",[-45,45]);
영상과 변환에 사용할 3가지 출력 보기를 만듭니다.
centerOutput = affineOutputView(size(A),tform,"BoundsStyle","CenterOutput"); followOutput = affineOutputView(size(A),tform,"BoundsStyle","FollowOutput"); sameAsInput = affineOutputView(size(A),tform,"BoundsStyle","SameAsInput");
각각의 서로 다른 출력 보기 스타일을 사용하여 입력 영상에 변환을 적용합니다.
BCenterOutput = imwarp(A,tform,"OutputView",centerOutput); BFollowOutput = imwarp(A,tform,"OutputView",followOutput); BSameAsInput = imwarp(A,tform,"OutputView",sameAsInput);
결과 영상을 표시합니다.
imshow(BCenterOutput)
title("CenterOutput Bounds Style");
imshow(BFollowOutput)
title("FollowOutput Bounds Style");
imshow(BSameAsInput)
title("SameAsInput Bounds Style");
iptsetpref("ImshowAxesVisible","off")
입력 인수
sizeA
— 입력 영상 크기
요소를 2개 가진 숫자형 벡터 | 요소를 3개 가진 숫자형 벡터
입력 영상 크기로, 2차원 영상 입력의 경우에는 요소를 2개 가진 숫자형 벡터로 지정되고 3차원 볼륨 영상 입력의 경우에는 요소를 3개 가진 숫자형 벡터로 지정됩니다.
tform
— 기하 변환
기하 변환 객체
기하 변환으로, 표에 나열된 기하 변환 객체로 지정됩니다.
기하 변환 객체 | 설명 |
---|---|
2차원 기하 변환 | |
transltform2d | 평행 이동 변환 |
rigidtform3d | 강체 변환: 평행 이동 및 회전 |
simtform2d | 유사 변환: 평행 이동, 회전, 등방성 스케일링 |
affinetform2d | 아핀 변환: 평행 이동, 회전, 비등방성 스케일링, 반사, 전단 |
3차원 기하 변환 | |
transltform3d | 평행 이동 변환 |
rigidtform3d | 강체 변환: 평행 이동 및 회전 |
simtform3d | 유사 변환: 평행 이동, 회전, 등방성 스케일링 |
affinetform3d | 아핀 변환: 평행 이동, 회전, 비등방성 스케일링, 반사, 전단 |
참고
tform
을 affine2d
객체 또는 affine3d
객체로 지정할 수도 있습니다. 그러나 이러한 객체는 권장되지 않습니다. 자세한 내용은 호환성 관련 고려 사항 항목을 참조하십시오.
style
— 범위 스타일
"CenterOutput"
(디폴트 값) | "FollowOutput"
| "SameAsInput"
범위 스타일로, 다음 값 중 하나로 지정됩니다.
스타일 | 설명 |
---|---|
"CenterOutput" | 보기 중심이 출력 공간상의 영상 중앙에 오도록 하며, 평행 이동으로 인해 보기를 벗어난 출력 영상 부분은 안 보이게 됩니다. |
"FollowOutput" | 출력 영상을 완전히 포함하도록 출력 보기의 제한을 설정합니다. |
"SameAsInput" | 출력 제한을 입력 제한과 같게 설정합니다. |
출력 인수
확장 기능
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
버전 내역
R2019b에 개발됨R2022b: 새로운 기하 변환 객체 지원
R2022b부터 대부분의 Image Processing Toolbox™ 함수는 전위곱 규칙을 사용하여 기하 변환을 만들고 수행합니다. 따라서 이제 tform
을 affinetform2d
또는 affinetform3d
객체와 같은 전위곱 규칙을 사용하는 기하 변환 객체로 지정할 수 있습니다.
여전히 tform
을 affine2d
객체 또는 affine3d
객체로 지정할 수 있지만 이러한 객체는 후위곱 규칙을 사용하므로 권장되지 않습니다. 전위곱 규칙을 사용하는 객체로 전환하여 기하 변환 워크플로를 간소화할 수 있습니다. 자세한 내용은 Migrate Geometric Transformations to Premultiply Convention 항목을 참조하십시오.
R2021b: 스레드 기반 환경 지원
affineOutputView
함수는 이제 스레드 기반 환경을 지원합니다.
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)