728x90
python 이미지 처리 라이브러리인 OpenCV를 이용해 2개의 이미지를 합성하거나 겹치는 방법으로 bitwise를 사용할 수 있다.
이번 포스팅에서 간단히 논리연산 AND, OR, XOR, NOT에 대해 2개의 이미지를 사용해 각각 어떤 원리인지 간단하게 살펴보고자한다.
2개의 이미지를 준비
다음의 코드로 두 가지 이미지를 읽어들였다.
import cv2
import matplotlib.pyplot as plt
%matplotlib inline
img1 = cv2.imread('images/img1.jpg')
img2 = cv2.imread('images/img2.jpg')
각각의 이미지를 살펴보면 다음과 같다.
plt.imshow(img1)
plt.imshow(img2)
AND 연산 - bitwise_and()
논리연산 AND의 계산은 다음과 같다.
A | B | A AND B |
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
준비한 2개의 이미지에 적용하면 다음과 같다.
bitwise_and = cv2.bitwise_and(img1, img2)
plt.imshow(bitwise_and)
OR 연산 - bitwise_or()
논리연산 OR의 계산은 다음과 같다.
A | B | A OR B |
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
bitwise_or()를 사용한 논리곱을 이미지로 표현하면 다음과 같다.
bitwise_or = cv2.bitwise_or(img1, img2)
plt.imshow(bitwise_or)
XOR 연산 - bitwise_xor()
배타적 논리합 XOR의 계산은 다음과 같다.
A | B | A XOR B |
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
bitwise_xor()를 사용한 논리곱 XOR을 이미지로 표현하면 다음과 같다.
NOT 연산 - bitwise_not()
논리 부정의 계산은 다음과 같다.
A | NOT A |
1 | 0 |
0 | 1 |
이것은 반전의 의미이다.
bitwise_not()을 사용해서 논리 부정을 계산해보자.
bitwise_not = cv2.bitwise_not(img1)
plt.imshow(bitwise_not
참고자료
https://code-graffiti.com/opencv-bitwise-boolean-operation-in-python/
728x90
'IT > 언어' 카테고리의 다른 글
[python/Numpy] Numpy 요소 바꾸는 함수 (0) | 2021.11.28 |
---|---|
[python] 문자열에서 특정(일부) 문자만 삭제하는 방법들 (0) | 2021.11.17 |
[python/OpenCV] OpenCV를 이용해 이미지의 특정 색 추출 (RGB vs HSV) (0) | 2021.11.15 |
[python] Numpy배열 ndarray를 결합시키는 방법(concatenate, stack, block 등) (0) | 2021.11.02 |
[python] python을 이용해 GPU 사용률 등의 정보 얻기(nvidia-smi커맨드) (0) | 2021.09.24 |