반응형
이미지 비트연산함수_bitwise_and, bitwise_or, add 차이
<opencv2/core.hpp>
bitwise_and
> void bitwise_and(InputArray src1, InputArray src2,
OutputArray dst, InputArray mask = noArray());
> mask 범위 내에서 두개의 array (src1, src2) 의 비트연산 and(&) 결과
> 비트연산 and 두 개의 값이 모두 True 일 때 True, 그렇지 않을 때 false
bitwise_or
> void bitwise_or(InputArray src1, InputArray src2,
OutputArray dst, InputArray mask = noArray());
> mask 범위 내에서 두개의 array (src1, src2) 의 비트연산 or(|) 결과
> 비트연산 or 두 개의 값 중 한개라도 True 일 때 True, 그렇지 않을 때 false
add
> void add(InputArray src1, InputArray src2, OutputArray dst,
InputArray mask = noArray(), int dtype = -1);
> mask 범위 내에서 두개의 array (src1, src2) 의 합계산 결과
특정한 영역의 타원만을 복사하는 예제에 대해서
이미지의 특정한 영역에 대해 3개의 함수가 같은 결과를 가지기 위해서는
1 2 3 4 5 6 7 8 9 10 11 12 13 | Mat dst1, dst2, dst3(image.size(), CV_8UC3, Scalar(0, 0, 0)); Mat mask(image.size(), CV_8U, Scalar(0)); Mat black(image.size(), CV_8UC3, Scalar(0)); Point center(120, 120); ellipse(mask, center, Size(50, 70), 0, 0, 360, Scalar(255), -1); bitwise_and(image, image, dst1, mask); bitwise_or(black, image, dst2, mask); add(black, image, dst3, mask); | cs |
그리고 결과는 다음과 같다.
1. bitwise_and
2. bitwise_or
3. add
의도와 같이 동일한 이미지를 획득할 수 있다.
반응형
'프로그래밍 > OPENCV' 카테고리의 다른 글
[OPENCV] 안드로이드 OPENCV 사용법(ANDROID+OPENCV, NDK) (0) | 2019.12.01 |
---|---|
[OPENCV]OPENCV 4.0 설치 ( Visual Studio 2015, Extra module 포함) (0) | 2019.12.01 |