4.4 비트연산
비트연산은 말 그대로 0, 1을 가지고 하는 연산으로 두 이미지의 동일한 위치에 대한 AND, OR, NOT, XOR 연산을 진행 합니다.
예제를 보면 참 단순한데 이미지에서 배경을 지우거나 뭔가 찾아내거나 하는데 사용이 됩니다.
cv2.bitwise_and(src1, src2[, dst[, mask]]) → dst
cv2.bitwise_or(src1, src2[, dst[, mask]]) → dst
cv2.bitwise_not(src[, dst[, mask]]) → dst
cv2.bitwise_xor(src1, src2[, dst[, mask]]) → dst
parameter
|
내용
|
src1 |
이미지 파일 |
src2 |
이미지 파일 |
dst |
결과 파일 |
mask |
적용 영역 지정 |
기능이 단순해서 예제도 흔한 내용 입니다.
import numpy as np import cv2
imgFile1 = 'F:/Python/images/image_calcu001.png' imgFile2 = 'F:/Python/images/image_calcu002.png'
# image read img1 = cv2.imread(imgFile1) img2 = cv2.imread(imgFile2)
bit_and = cv2.bitwise_and(img1, img2) bit_or = cv2.bitwise_or(img2, img1) bit_not = cv2.bitwise_not(img2) bit_xor = cv2.bitwise_xor(img2, img1)
cv2.imshow("bit_and", bit_and) cv2.imshow("bit_or", bit_or) cv2.imshow("bit_not", bit_not) cv2.imshow("bit_xor", bit_xor)
cv2.waitKey(0) cv2.destroyAllWindows() |
- 원본 이미지
두개의 원본 이미지가 있습니다. 색이 없으면 검게 보이고(0) 색이 있으면 흰색(1)으로 표현 됩니다.
4.4.1 and 연산
두 그림에서 모두 흰색(1)인 부분만 흰색으로 나타 납니다.
A |
0 |
0 |
1 |
1 |
B |
0 |
1 |
0 |
1 |
A and B |
0 |
0 |
0 |
1 |
4.4.2 or 연산
두 그림에서 모두 검은색(0)인 부분만 검정색으로 나타 납니다.
A |
0 |
0 |
1 |
1 |
B |
0 |
1 |
0 |
1 |
A or B |
0 |
1 |
1 |
1 |
4.4.3 not 연산
B 그림에서 색이 반대로 나타 납니다.
B |
0 |
1 |
not B |
1 |
0 |
4.4.4 xor 연산
두 그림에서 값이 서로 같으면 검은색 같지 않으면 흰색으로 나타 납니다.
A |
0 |
0 |
1 |
1 |
B |
0 |
1 |
0 |
1 |
A xor B |
0 |
1 |
1 |
0 |
'Tensorflow > OpenCV' 카테고리의 다른 글
OpenCV 이미지 붙이기 (1) | 2019.04.08 |
---|---|
OpenCV 5. 임계처리 (이진화) (Python) (0) | 2019.04.07 |
OpenCV 4. 이미지 연산 (Python) (0) | 2019.04.05 |
OpenCV 3. 비디오 입력 출력 (Python) (2) | 2019.04.04 |
OpenCV 2. 이미지 입력 출력 (Python) (0) | 2019.04.02 |