나중에 내가 보려고 만든 블로그

[Python] opencv 바이너리 이미지 비트연산 본문

Python

[Python] opencv 바이너리 이미지 비트연산

winches 2022. 6. 23. 14:22

두 종류의 바이너리 이미지에서 intersection인 부분만 추출해서 새로운 이미지를 만들기위해 사용한 방법이다.

opencv 비트 연산으로 간단히 만들 수 있었다.

 

opencv 공식 document에서 bitwise_and()에 대해 설명되어 있는 내용이다.

비트 연산 방식 및 결과는 아래 표 참고.

이 중에서 내가 원하는 결과는 AND 기능이었고 이미지에 적용해보았다. 코드는 아래와 같음.

1
2
3
4
5
6
7
8
9
10
11
12
import cv2
 
img1 = cv2.imread("img1.png",0)
img2 = cv2.imread("img2.png",0)
 
img_bwand = cv2.bitwise_and(img1,img2)
img_bwor = cv2.bitwise_or(img1,img2)
img_bwxor = cv2.bitwise_xor(img1,img2)
 
cv2.imwrite("and.png",img_bwand)
cv2.imwrite("or.png",img_bwor)
cv2.imwrite("xor.png",img_bwxor)
cs

아래 이미지 두 개로 세가지 비트 연산 적용해본 결과이다.

 

img1 img2

 

위의 img1, img2로 각 and, or, xor 연산하여 이미지 export 하였다.

bitwise_and() 실행 결과 bitwise_or() 실행 결과 bitwise_xor() 실행 결과

 

필요에 따라 원하는 이미지 연산 방법을 간단하게 사용할 수 있다.