영상의 산술 및 논리 연산
덧셈 연산
기본 덧셈: dst(x,y) = saturate(src1(x,y) + src2(x,y))
두 영상의 같은 위치에 존재하는 픽셀 값을 더하여 결과 영상의 픽셀 값으로 설정 이 때 결과값이 255가 넘으면 255로 고정한다.
사용 함수: cv2.add(src1, src2, dst, mask, dtype) -> dst
함수에 대한 자세한 설명은 저번 포스트 참고!
가중치 합(weighted sum): dst(x,y) = saturate(alpha*src1(x,y) + beta*src2(x,y))
두 영상의 같은 위치에 존재하는 픽셀 값에 대하여 alpha와 beta 만큼의 가중치를 부여하여 결과 영상의 픽셀 값으로 설정하며 이 때 보통 두 가중치의 합이 1이 되도록 설정하여 두 입력 영상의 평균 밝기를 유지한다.
영상 합성 시 dissolve 효과를 만드는데 사용 가능하다.
평균(average): dst(x,y) = saturate(0.5*src1(x,y) + 0.5*src2(x,y)) = 0.5 * saturate(src1(x,y) + src2(x,y))
가중치 합 연산에서 가중치가 동일하게 0.5로 설정된 결과 값
사용 함수: cv2.addWeighted(src1, alpha, src2, beta, gamma, dst, dtype) -> dst
src1과 src2는 연산에 사용될 동일한 크기와 타입을 가진 영상. alpha는 src1 가중치고 beta는 src2의 가중치. gamma는 영상에 추가적으로 더할 값. dst는 가중치 합의 결과 영상이며 dtype은 출력 영상의 타입을 결정한다.
뺄셈 연산
기본 뺄셈: dst(x,y) = saturate(src1(x,y) - src2(x,y))
두 영상의 같은 위치에 존재하는 픽셀 값을 빼서 결과 영상의 픽셀 값으로 설정 이 때 결과값이 0보다 작으면 0으로 고정한다.
사용 함수: cv2.subtract(src1, src2, dst, mask, dtype) -> dst
함수 인자에 대한 설명은 위 덧셈 함수 인자들과 동일 하다.
차이 값 (절대 값): dst(x,y) = | saturate(src1(x,y) - src2(x,y)) |
두 영상의 같은 위치에 존재하는 픽셀 값을 뺀 절대값을 결과 영상의 픽셀 값으로 설정 이 때문에 입력 영상의 순서에 영향을 받지 않는다.
사용 함수: cv2.absdiff(src1, src2, dst) -> dst
함수 인자에 대한 설명은 위 덧셈 함수 인자들과 동일 하다.
논리 연산 (Bit 단위)
AND: cv2.bitwise_and(src1, src2, dst, mask) -> dst
OR: cv2.bitwise_or(src1, src2, dst, mask) -> dst
XOR: cv2.bitwise_xor(src1, src2, dst, mask) -> dst
NOT: cv2.bitwise_not(src1, dst, mask) -> dst
각각의 픽셀 값을 이진주로 표현하고, 비트 단위로 논리 연산을 수행하게 된다.

인증 타임
원래는 영상이 numpy.ndarray로 이루어져 있는 만큼 픽셀마다 더하기, 빼기, 논리 연산을 해줘야 한다고 하면 Loop가 매우 많이 생성되기 때문에 빠르게 처리하기도 어렵고 코드도 지저분해졌을거 같은데 OpenCV에서 함수로 제공을 하니 매우 편리했다. 지금은 그레이스케일 영상에만 적용해 봤는데 컬러 영상도 되는지 저번에 배운 연산 처리 시간 측정 하는 방식으로 영상 타입에 따라 걸리는 시간이 다른지도 한번 측정해보면 좋을거 같다.

#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #OpenCV를 활용한 컴퓨터비전과 딥러닝 올인원 패키지 Online
패스트캠퍼스(FastCampus) 강의 둘러보러 가기
↓ ↓ ↓
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'남돈내배 > 2022_FastCampus_환급이벤트' 카테고리의 다른 글
| 패스트캠퍼스 챌린지 18일차 - Ch3. 기본적인 영상 처리 기법 (0) | 2022.02.10 |
|---|---|
| 패스트캠퍼스 챌린지 17일차 - Ch3. 기본적인 영상 처리 기법 (0) | 2022.02.09 |
| 패스트캠퍼스 챌린지 15일차 - Ch3. 기본적인 영상 처리 기법 (0) | 2022.02.07 |
| 패스트캠퍼스 챌린지 14일차 - Ch2. OpenCV-Python 기초 사용법 (0) | 2022.02.06 |
| 패스트캠퍼스 챌린지 13일차 - Ch2. OpenCV-Python 기초 사용법 (0) | 2022.02.05 |