Main Content

rigid3d

(권장되지 않음) 후위곱 규칙을 사용하는 3차원 강체 기하 변환

R2020a 이후

rigid3d는 권장되지 않습니다. 대신 rigidtform3d 객체를 사용하십시오. 자세한 내용은 호환성 관련 고려 사항 항목을 참조하십시오.

설명

rigid3d 객체는 3차원 강체 기하 변환에 대한 정보를 저장하며, 순방향 및 역방향 변환을 적용합니다.

생성

설명

tform = rigid3d는 항등 변환에 해당하는 디폴트 rigid3d 객체를 만듭니다.

tform = rigid3d(t)T 속성을 지정된 3차원 강체 변환 행렬 t로 설정합니다.

예제

tform = rigid3d(rot,trans)Rotation 속성 및 Translation 속성을 지정된 회전 행렬 rot와 평행 이동 벡터 trans로 각각 설정합니다.

속성

모두 확장

순방향 강체 변환으로, 4×4 숫자형 행렬로 지정됩니다. 이 행렬은 다음으로 지정되는 후위곱 규칙을 충족하는 동차 변환 행렬이어야 합니다.

[xyz1]=[uvw1]*T

T는 다음과 같은 형태를 갖습니다.

[r11r12r130;...r21r22r230;...r31r32r330;...txtytz1];

데이터형: single | double

변환의 회전 구성요소로, 3×3 숫자형 행렬로 지정됩니다. 이 회전 행렬은 다음으로 지정되는 후위곱 규칙을 충족합니다.

[xyz]=[uvw]*R

데이터형: single | double

변환의 평행 이동 구성요소로, 요소를 3개 가진 숫자형 행 벡터로 지정됩니다. 이 평행 이동 벡터는 다음으로 지정되는 규칙을 충족합니다.

[xyz]=[uvw]+t

데이터형: single | double

읽기 전용 속성입니다.

기하 변환의 차원 수로, 값 3으로 지정됩니다.

객체 함수

invert역 기하 변환
outputLimitsFind output spatial limits given input spatial limits
transformPointsForwardApply forward geometric transformation
transformPointsInverseApply inverse geometric transformation

예제

모두 축소

회전 각도(단위: 도)를 지정하고 3×3 회전 행렬을 만듭니다.

theta = 30;
rot = [ cosd(theta) sind(theta) 0; ...
       -sind(theta) cosd(theta) 0; ...
       0 0 1];

가로, 세로, 깊이별 평행 이동의 양을 각각 지정합니다.

trans = [2 3 4];

회전 및 평행 이동을 수행하는 rigid3d 객체를 만듭니다.

tform = rigid3d(rot,trans)
tform = 
  rigid3d with properties:

       Rotation: [3x3 double]
    Translation: [2 3 4]

확장 기능

버전 내역

R2020a에 개발됨

모두 축소

R2022b: 권장되지 않음

R2022b부터 대부분의 Image Processing Toolbox™ 함수는 전위곱 규칙을 사용하여 기하 변환을 만들고 수행합니다. 따라서 후위곱 규칙을 사용하는 rigid3d 객체는 권장되지 않습니다. 현재로서는 rigid3d 객체를 제거할 계획이 없지만 전위곱 규칙을 지원하는 rigidtform3d 객체로 전환하여 기하 변환 워크플로를 간소화할 수 있습니다. 자세한 내용은 Migrate Geometric Transformations to Premultiply Convention 항목을 참조하십시오.

코드를 업데이트하려면 다음을 수행하십시오.

  • 함수 이름 rigid3drigidtform3d로 변경합니다.

  • 변환 행렬을 T의 전치로 지정하거나 회전 행렬을 Rotation의 전치로 지정합니다. Trigid3d 객체의 T 속성값이거나 rigid3d 객체를 만드는 데 사용되는 변환 행렬입니다. Rotationrigid3d 객체의 Rotation 속성값이거나 rigid3d 객체를 만드는 데 사용되는 회전 행렬입니다.

권장되지 않는 사용법권장되는 대체 방법

이 예제에서는 후위곱 규칙의 변환 행렬 T에서 rigid3d 객체를 만듭니다.

T = [1 0 0 0; 0 1 0 0; 0 0 1 0; 5 10 -5 1];
tformPost = rigid3d(T);

이 예제에서는 행렬 T의 전치에서 rigidtform3d 객체를 만듭니다.

T = [1 0 0 0; 0 1 0 0; 0 0 1 0; 5 10 -5 1];
tform = rigidtform3d(T');

이 예제에서는 tformPost라는 rigid3d 객체로 시작하여 tformPostT 속성의 전치에서 rigidtform3d 객체를 만듭니다.

T = tformPost.T;
tform = rigidtform2d(T');

이 예제에서는 후위곱 규칙의 회전 행렬 rot와 평행 이동 trans에서 rigid3d 객체를 만듭니다.

theta = 30;
rot = [ cosd(theta) sind(theta) 0; ...
       -sind(theta) cosd(theta) 0; ...
        0 0 1];
trans = [5 10 -5];
tformPost = rigid3d(rot,trans);

이 예제에서는 회전 행렬 rot의 전치와 평행 이동 trans에서 rigidtform3d 객체를 만듭니다.

theta = 30;
rot = [ cosd(theta) sind(theta) 0; ...
       -sind(theta) cosd(theta) 0; ...
        0 0 1];
trans = [5 10 -5];
tform = rigidtform3d(rot',trans);