Main Content

imtranslate

영상 평행 이동하기

설명

예제

B = imtranslate(A,translation)은 영상 Atranslation에 지정된 2차원 또는 3차원 변환 벡터로 평행 이동합니다.

A가 3차원 이상이고 translation이 요소가 2개인 벡터인 경우 imtranslateA의 각 평면에 2차원 평행 이동을 적용합니다.

[B,RB] = imtranslate(A,RA,translation)은 공간 참조 영상 A와 이와 연관된 공간 참조 객체 RA를 평행 이동합니다. 평행 이동 벡터 translation은 세계 좌표계상에 있습니다. 이 함수는 평행 이동된 공간 참조 영상 B와 이와 연관된 공간 참조 객체 RB를 반환합니다.

___ = imtranslate(___,method)method로 지정된 보간 방법을 사용하여 영상 A를 평행 이동합니다.

예제

___ = imtranslate(___,Name,Value)는 이름-값 쌍을 사용하여 입력 영상을 평행 이동하여 평행 이동의 다양한 측면을 제어합니다.

예제

모두 축소

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

I = imread('pout.tif');

영상을 평행 이동합니다.

J = imtranslate(I,[25.3, -10.1],'FillValues',255);

원본 영상과 평행 이동된 영상을 표시합니다.

figure
imshow(I);
title('Original Image');
set(gca,'Visible','on');

Figure contains an axes object. The axes object with title Original Image contains an object of type image.

figure
imshow(J);
title('Translated Image');
set(gca,'Visible','on');

Figure contains an axes object. The axes object with title Translated Image contains an object of type image.

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

I = imread('pout.tif');

영상을 평행 이동합니다. OutputView 파라미터를 사용하여 평행 이동된 전체 영상을 표시하도록 지정합니다.

J = imtranslate(I,[25.3, -10.1],'FillValues',255,'OutputView','full');

원본 영상과 평행 이동된 영상을 표시합니다.

figure
imshow(I);
title('Original Image');
set(gca,'Visible','on');

Figure contains an axes object. The axes object with title Original Image contains an object of type image.

figure
imshow(J);
title('Full Translated Image');
set(gca,'Visible','on');

Figure contains an axes object. The axes object with title Full Translated Image contains an object of type image.

MRI 데이터를 작업 공간으로 불러온 후 이를 표시합니다.

s = load('mri');
mriVolume = squeeze(s.D);
sizeIn = size(mriVolume);
hFigOriginal = figure;
hAxOriginal  = axes;
slice(double(mriVolume),sizeIn(2)/2,sizeIn(1)/2,sizeIn(3)/2);
grid on, shading interp, colormap gray

Figure contains an axes object. The axes object contains 3 objects of type surface.

X,Y 방향으로 평행 이동을 적용합니다.

mriVolumeTranslated = imtranslate(mriVolume,[40,30,0],'OutputView','full');

볼륨의 가운데를 축 방향으로 자르는 슬라이스 평면을 확인하여 평행 이동을 시각화합니다. X와 Y 방향으로 이동합니다.

sliceIndex = round(sizeIn(3)/2);
axialSliceOriginal   = mriVolume(:,:,sliceIndex);
axialSliceTranslated = mriVolumeTranslated(:,:,sliceIndex);

imshow(axialSliceOriginal);

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

imshow(axialSliceTranslated);

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

입력 인수

모두 축소

평행 이동할 영상으로, 숫자형 배열, 논리형 배열 또는 categorical형 배열로 지정됩니다.

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

입력 영상 A와 연결된 공간 참조 정보로, imref2d 또는 imref3d 공간 참조 객체로 지정됩니다.

평행 이동 벡터로, 요소를 2개 가진 숫자형 벡터 [Tx Ty] 또는 요소를 3개 가진 숫자형 벡터 [Tx Ty Tz]로 지정됩니다. 값은 소수일 수 있습니다.

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

보간 방법으로, 다음 값 중 하나로 지정됩니다.

설명

"nearest"

최근접이웃 보간. 해당 점이 속한 픽셀 값이 출력 픽셀에 할당됩니다. 다른 픽셀은 고려되지 않습니다.

최근접이웃 보간은 범주 영상에서 유일하게 지원되는 방법이며, 이 영상 유형의 디폴트 방법입니다.

"bilinear"

선형 보간입니다.

선형 보간은 숫자형 및 논리형 영상의 디폴트 방법입니다.

"bicubic"

3차 보간.

참고

3차 보간은 원래 범위를 벗어나는 픽셀 값을 생성할 수 있습니다.

데이터형: char | string

이름-값 인수

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

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

예: mriVolumeTranslated = imtranslate(mriVolume,[40,30,0],"OutputView","full");

출력 세계 제한으로, 다음 값 중 하나로 지정됩니다.

설명
"same"출력 세계 제한은 입력 영상과 동일합니다.
"full"출력 세계 제한은 입력 영상과 평행 이동된 출력 영상을 모두 포함하는 경계 사각형입니다.

데이터형: char | string

입력 영상의 바깥쪽에 있는 출력 픽셀에 사용되는 채우기 값으로, 표의 값 중 하나로 지정됩니다. imtranslate는 입력 영상의 역변환된 해당 위치가 완전히 입력 영상 경계선 바깥쪽에 있는 경우 출력 픽셀에 채우기 값을 사용합니다.

숫자형 및 논리형 영상의 디폴트 채우기 값은 0입니다. 범주 영상의 디폴트 채우기 값은 missing으로, 이는 <undefined> 범주에 해당합니다.

영상 유형

평행 이동 차원

채우기 값의 형식

2차원 회색조 또는 논리형 영상2차원
  • 숫자형 스칼라

2차원 컬러 영상 또는 2차원 다중분광 영상2차원
  • 숫자형 스칼라

  • c개 채널 각각에 대해 채우기 값을 지정하는, 요소를 c개 가진 숫자형 벡터. 채널 개수 c는 컬러 영상의 경우 3입니다.

p개의 2차원 영상 시리즈2차원

  • 숫자형 스칼라

  • c×p 숫자형 행렬. 채널 개수 c는 회색조 영상의 경우 1이고 컬러 영상의 경우 3입니다.

N차원 영상2차원
  • 숫자형 스칼라

  • 크기가 입력 영상 A의 3~N 차원과 일치하는 숫자형 배열. 예를 들어, A가 200×200×10×3이면 FillValues는 10×3 배열일 수 있습니다.

3차원 회색조 또는 논리형 영상3차원
  • 숫자형 스칼라

범주 영상2차원 또는 3차원
  • 영상의 유효한 범주로, string형 스칼라 또는 문자형 벡터로 지정됩니다.

  • missing으로, <undefined> 범주에 해당합니다. 자세한 내용은 missing 항목을 참조하십시오.

예: 255uint8형 영상을 흰색 픽셀로 채웁니다.

예: 1double형 영상을 흰색 픽셀로 채웁니다.

예: [0 1 0]double형 컬러 영상을 녹색 픽셀로 채웁니다.

예: 두 개의 double형 컬러 영상 시리즈에 대해 [0 1 0; 0 1 1]'은 첫 번째 영상을 녹색 픽셀로 채우고 두 번째 영상을 녹청색 픽셀로 채웁니다.

예: "vehicle"은 범주 영상을 "vehicle" 범주로 채웁니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | char

출력 인수

모두 축소

평행 이동된 영상으로, 입력 영상 A와 데이터형이 같은 숫자형, 논리형 또는 categorical형 배열로 반환됩니다.

출력 영상과 연결된 공간 참조 정보로, imref2d 또는 imref3d 공간 참조 객체로 반환됩니다.

  • imtranslate는 정수 값 translation 벡터에 최적화되어 있습니다.

  • OutputView"full"이고 translation이 소수 픽셀인 경우 imtranslate는 출력 공간 참조 객체의 세계 제한을 가장 가까운 전체 픽셀 증분으로 확장합니다. imtranslate는 입력 영상과 동일한 해상도로 원본 영상과 평행 이동된 영상을 모두 포함하도록 이를 수행합니다. 각각의 추가 영상 범위는 평행 이동 벡터가 가리키는 방향으로 영상의 한쪽에 추가됩니다. 예를 들어 translation이 X와 Y 모두에서 소수이고 양수이면 imtranslateXWorldLimitsYWorldLimits의 최댓값을 확장하여 입력 영상의 해상도로 "full" 경계 사각형을 둘러쌉니다.

확장 기능

버전 내역

R2014a에 개발됨

모두 확장