행렬의 모든 원소가 1로 초기화된 행렬을 생성하려면 Mat::ones() 함수를 사용할 수 있습니다. 또한 행렬 연산에서 자주 사용되는 단위 행렬(identity matrix)을 생성하려면 Mat::eye() 함수를 사용할 수 있습니다. Mat::ones()와 Mat::eye() 함수 원형은 다음과 같습니다.
static MatExpr Mat::ones(int rows, int cols, int type); static MatExpr Mat::ones(Size size, int type); |
|
• rows |
새로 만들 행렬의 행 개수(영상의 세로 크기) |
• cols |
새로 만들 행렬의 열 개수(영상의 가로 크기) |
• size |
새로 만들 행렬의 크기 |
• type |
새로 만들 행렬의 타입 |
• 반환값 |
모든 원소가 1로 초기화된 행렬 표현식 |
static MatExpr Mat::eye(int rows, int cols, int type); static MatExpr Mat::eye(Size size, int type); |
|
• rows |
새로 만들 행렬의 행 개수(영상의 세로 크기) |
• cols |
새로 만들 행렬의 열 개수(영상의 가로 크기) |
• size |
새로 만들 행렬의 크기 |
• type |
새로 만들 행렬의 타입 |
• 반환값 |
단위 행렬을 표현하는 행렬 표현식 |
Mat::ones()와 Mat::eye() 함수의 사용 방법은 Mat::zeros() 함수와 완전히 같으며, 생성되는 행렬 원소의 초깃값만 다릅니다. 다음은 Mat::ones()와 Mat::eye() 함수를 사용하여 Mat 객체를 생성하는 예제 코드입니다.
Mat mat2 = Mat::ones(3, 3, CV_32FC1); // 1's matrix Mat mat3 = Mat::eye(3, 3, CV_32FC1); // identity matrix