뺄셈 연산
dst( x, y ) = saturate(src1( x, y ) − src2( x, y ))
뺄셈 연산은 두 이미지의 같은 위치에 존재하는 픽셀 값을 뺀 결과를 픽셀 값으로 설정하는 연산을 말한다. 뺄셈 결과가 픽셀의 표현범위 보다 작으면 특정 픽셀 값으로 설정한다. 예를 들면 픽셀이 0~255으로 표현되는데 두 픽셀의 값을 뺀 결과가 0보다 작은 경우 0으로 설정한다. 이를 포화 연산(saturate)라고 한다.
예제코드를 살펴보자.
val src1:Mat = ... val src2:Mat = ... val dst = Mat() Core.subtract(src1, src2, dst)
두 이미지 src1, src2 뺀 결과를 dst에 담는다. 여기서 src1,src2는 이미지의 크기가 같은 것으로 가정한다.
src1(레나)에서 src2(그라데이션이 적용된 원형 이미지)를 빼는 연산을 했다.
src2는 외각이 흰색(255)이고 이미지의 중심으로 갈수록 검정색(0)인 이미지다. src1에서 src2를 뺀 결과 자연스럽게 그라데이션이 적용된 원형 속 사람을 볼 수 있다.
subtract함수에는 src2 대신 스칼라 값을 매개변수로 하여 src1 전체 픽셀에 해당 스칼라값을 뺄 수도 있고, 마스크를 매개변수로 전달하여 마스킹 된 부분만 연산을 진행할 수도 있다.
0개의 댓글