더북(TheBook)

영상을 수식으로 설명할 때에는 보통 함수의 형태를 사용합니다. 즉, x 좌표와 y 좌표를 입력으로 받고 해당 위치에서의 픽셀 값을 출력으로 내보내는 함수 형태로 영상을 표현할 수 있습니다. 예를 들어 그림 1-4에 나타난 영상을 f라고 표기할 수 있으며, 이때 (x, y) 좌표에서의 픽셀 값은 f(x, y)로 표현합니다.

영상은 2차원 평면 위에 픽셀 값이 나열된 형태이기 때문에 영상을 2차원 행렬로 표현할 수도 있습니다. 실제로 몇몇 영상 처리 알고리즘은 행렬 이론을 이용하여 컴퓨터 비전 문제를 해결하기도 합니다. 행 개수가 M이고, 열 개수가 N인 행렬 A는 보통 다음과 같이 나타냅니다.

위 행렬에서 소문자 aj,ij번째 행, i번째 열에 위치한 행렬 원소를 나타냅니다. 만약 행렬 A가 영상을 나타내는 경우라면 aj,i는 (i, j) 좌표에 위치한 픽셀을 나타냅니다. 행렬에서 행 번호 jxy 좌표 공간에서 y 좌표에 해당하고, 열 번호 ix 좌표에 해당합니다. 행렬은 수학적인 표현이므로 행과 열 번호가 0부터 시작하지 않고 1부터 시작하는 형태로 표기하였습니다.

Note

가로 픽셀 크기가 w이고 세로 픽셀 크기가 h인 영상을 보통 w×h 크기의 영상이라고 표현합니다. 즉, 곱셈 기호 앞에 영상의 가로 크기를 쓰고, 곱셈 기호 뒤에 영상의 세로 크기를 적습니다. 참고로 w×h는 영어로 w-by-h라고 읽습니다. 그러나 행렬의 크기를 표현할 때에는 행의 크기를 먼저 쓰고, 열의 크기를 나중에 쓰는 것이 관례입니다. 즉, M개의 행과 N개의 열을 가지고 있는 행렬은 M × N 행렬이라고 쓰고, M-by-N 행렬이라고 읽습니다.

OpenCV에서는 영상을 행렬 형태로 표현하기 때문에 크기를 400×300이라고 표현하면 가로 크기가 400인지, 아니면 행의 개수가 400인지가 다소 모호할 때가 있습니다. 이 책에서는 명백한 행렬 표현 시에는 (행 개수)×(열 개수) 형식을 사용하고, 영상을 나타낼 때에는 (가로 크기)×(세로 크기) 형식으로 크기를 표현하겠습니다. 만약 구분이 다소 애매할 경우에는 따로 부연 설명을 추가하겠습니다.

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