더북(TheBook)

표 3-3에 나열된 행렬 연산 예제 중에서 * 연산자를 사용하는 곱셈 연산은 행렬의 수학적 곱셈 연산을 의미합니다. 만약 두 행렬에서 같은 위치에 있는 원소끼리 곱셈 연산을 수행하려면 Mat::mul() 멤버 함수를 사용해야 합니다. Mat::mul() 함수 원형은 다음과 같습니다.

MatExpr Mat::mul(InputArray m, double scale=1) const;

m

*this 행렬과 크기 및 타입이 같은 행렬, 또는 행렬 표현식

scale

추가적으로 곱할 값

반환값

두 행렬의 같은 위치 원소끼리 곱셈한 결과 행렬 표현식

 

행렬과 관련된 중요한 연산 중에 역행렬(inverse matrix)을 구하는 연산이 있습니다. OpenCV에서 행렬의 역행렬을 구할 때에는 Mat::inv() 멤버 함수를 사용합니다. Mat::inv() 함수 원형은 다음과 같습니다.

MatExpr Mat::inv(int method=DECOMP_LU) const;

method

역행렬 계산 방법. DECOMP_LU, DECOMP_SVD, DECOMP_EIG, DECOMP_CHOLESKY 중 하나를 지정할 수 있습니다.

반환값

역행렬에 대한 행렬 표현식

 

Mat::inv() 함수는 method 인자를 통해 역행렬 계산 방법을 지정할 수 있습니다. 역행렬이 존재하는 일반적인 행렬이라면 가우스 소거법을 사용하는 DECOMP_LU를 사용할 수 있으며, 이 값은 기본값으로 지정되어 있으므로 생략할 수 있습니다. 역행렬이 존재하지 않는 경우 DECOMP_SVD를 지정하면 특잇값 분해(singular value decomposition) 방법을 이용하여 의사 역행렬(pseudo-inverse matrix)을 구할 수 있습니다. DECOMP_EIGDECOMP_CHOLESKY는 각각 고윳값 분해와 촐레스키(Cholesky) 분해에 의한 역행렬 계산을 의미합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.