OpenCV에서 두 영상의 가중치 합을 구하려면 addWeighted() 함수를 사용합니다. addWeighted() 함수 원형은 다음과 같습니다.
void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype = -1); |
|
• src1 |
첫 번째 입력 행렬 |
• alpha |
src1 행렬의 가중치 |
• src2 |
두 번째 입력 행렬. src1과 크기와 채널 수가 같아야 합니다. |
• beta |
src2 행렬의 가중치 |
• gamma |
가중합 결과에 추가적으로 더할 값 |
• dst |
출력 행렬. 입력 행렬과 같은 크기, 같은 채널 수의 행렬이 생성됩니다. |
• dtype |
출력 행렬의 깊이. src1과 src2의 깊이가 같은 경우에는 dtype에 -1을 지정할 수 있고, 이 경우 dst의 깊이는 src1, src2와 같은 깊이로 설정됩니다. src1과 src2의 깊이가 서로 다른 경우에는 dtype을 반드시 지정해야 합니다. |
addWeighted() 함수는 gamma 인자를 통해 가중치의 합에 추가적인 덧셈을 한꺼번에 수행할 수 있습니다. 그러므로 addWeighted() 함수에 의해 생성되는 dst는 다음과 같이 나타낼 수 있습니다.
addWeighted() 함수를 이용하여 두 입력 영상의 평균 영상을 생성하려면 다음과 같이 코드를 작성합니다.
Mat src1 = imread("aero2.bmp", IMREAD_GRAYSCALE); Mat src2 = imread("camera.bmp", IMREAD_GRAYSCALE); Mat dst; addWeighted(src1, 0.5, src2, 0.5, 0, dst);