3.2.5 행렬의 원소 값 참조
OpenCV 라이브러리는 다양한 영상 처리에 필요한 기능을 구현한 클래스와 함수를 제공합니다. 그러므로 OpenCV에서 제공하는 클래스와 함수만 잘 조합하여 사용해도 웬만한 영상 처리 시스템은 충분히 구축할 수 있습니다. 그러나 OpenCV에서 제공하는 기능 외에 사용자가 직접 자신만의 알고리즘을 구현하여 적용해야 하는 경우도 자주 발생합니다. 이때 필요한 기능이 영상의 픽셀 값을 참조하는 기능입니다. OpenCV는 Mat 클래스에 저장된 행렬 원소 값을 참조하고 값을 변경할 수 있는 다양한 인터페이스를 제공합니다. 이 절에서는 OpenCV에서 제공하는 세 가지 픽셀 값 접근 방법에 대해 알아보고, 각 방법의 장단점에 대해 살펴보겠습니다.
Mat::at( ) 함수 사용 방법
OpenCV에서 제공하는 가장 직관적인 행렬 원소 접근 방법은 Mat::at() 멤버 함수를 사용하는 방법입니다. Mat::at() 함수는 보통 행과 열을 나타내는 두 개의 정수를 인자로 받아 해당 위치의 행렬 원소 값을 참조 형식으로 반환합니다. Mat::at() 함수는 템플릿을 사용하는 템플릿 함수로서 여러 가지 형태로 재정의가 되어 있으며, 주로 사용하는 Mat::at() 함수 형식은 다음과 같습니다.
template<typename _Tp> _Tp& Mat::at(int y, int x) |
|
• y |
참조할 행 번호 |
• x |
참조할 열 번호 |
• 반환값 |
(_Tp& 타입으로 형 변환된) y번째 행, x번째 열의 원소 값(참조) |