
import cv2
img1 = cv2.imread('이미지1 파일경로')
img2 = cv2.imread('이미지2 파일경로')
bit_and = cv2.bitwise_and(img1, img2)
bit_or = cv2.bitwise_or(img1, img2)
bit_not = cv2.bitwise_not(img2)
bit_xor = cv2.bitwise_xor(img1, img2)
cv2.imshow('img1', img1)
cv2.imshow('img2', img2)
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()
cv2.destroyAllWindows()

cv2.bitwise_and(src1, src2[, dst[, mask]])
cv2.bitwise_or(src1, src2[, dst[, mask]])
cv2.bitwise_not(src1[, dst[, mask]])
cv2.bitwise_xor(src1, src2[, dst[, mask]])
| Parameter | Description |
|---|---|
| src1 | 연산할 이미지1 |
| src2 | 연산할 이미지2 |
| dst | 결과 파일 |
| mask | 적용 영역 지정 |

두 이미지에서 모두 흰색인 부분만 흰색으로 출력
cv2.bitwise_and(src1, src2[, dst[, mask]])

| A | B | A and B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
두 이미지 중 하나에서만 흰색이여도 그 부분을 흰색으로 출력
cv2.bitwise_or(src1, src2[, dst[, mask]])

| A | B | A or B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
해당 이미지의 반대로 출력
cv2.bitwise_not(src1[, dst[, mask]])

| B | |
|---|---|
| 0 | 1 |
| 1 | 0 |
두 이미지에서 값이 서로 같으면 검은색, 같지 않으면 흰색으로 출력
cv2.bitwise_xor(src1, src2[, dst[, mask]])

| A | B | A xor B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |