더북(TheBook)

OpenCV에서는 add() 함수를 사용하여 영상의 덧셈을 수행할 수 있습니다. add() 함수 원형은 다음과 같습니다.

void add(InputArray src1, InputArray src2, OutputArray dst,
         InputArray mask = noArray(), int dtype = -1);

src1

첫 번째 입력 행렬 또는 스칼라

src2

두 번째 입력 행렬 또는 스칼라

dst

입력 행렬과 같은 크기, 같은 채널 수를 갖는 출력 행렬. dst의 깊이는 src1, src2의 깊이와 같거나 또는 dtype 인자에 의해 결정됩니다.

mask

8비트 1채널 마스크 영상. mask 행렬 원소 값이 0이 아닌 위치에서만 덧셈 연산을 수행합니다.

dtype

출력 행렬의 깊이. src1src2의 깊이가 같은 경우에는 dtype에 -1을 지정할 수 있고, 이 경우 dst의 깊이는 src1, src2와 같은 깊이로 설정됩니다. src1src2의 깊이가 서로 다른 경우에는 dtype을 반드시 지정해야 합니다.

 

add() 함수는 두 개의 행렬 또는 영상을 입력으로 받고, 하나의 행렬 또는 영상을 출력으로 생성합니다. src1src2 인자에는 Mat 객체 또는 Scalar 객체, 정수, 실수 자료형 등을 전달할 수 있습니다. src1src2가 모두 영상처럼 2차원 행렬을 나타내는 Mat 객체라면 일반적인 행렬의 덧셈 연산을 수행합니다. 만약 src1Mat 객체이고 src2Scalar 객체, 정수, 실수라면 src1 행렬의 모든 픽셀 값에 src2 값을 더하여 결과 영상을 생성합니다. 이때 덧셈 결과가 dst 객체가 표현할 수 있는 자료형 범위를 벗어나면 자동으로 포화 연산을 수행합니다.1 add() 함수에서 mask 인자와 dtype 인자는 기본값을 가지고 있으며, 기본값을 변경할 필요가 없다면 따로 지정하지 않아도 됩니다. src1src2 행렬 깊이가 서로 다른 경우에는 dtype 인자를 반드시 지정해야 합니다.

 

1 예외적으로 출력 영상 dst의 깊이가 CV_32S인 경우에는 포화 연산이 수행되지 않습니다.

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