본문 바로가기
영상처리 프로그래밍/OpenCV-Python

논리(비트) 연산

by Glory_Choi 2022. 11. 16.
반응형

논리(비트) 연산 함수

함수 설명

 

 

cv2.bitwise_and(src1, src2[ , dst [ , mask]]) >> dst

  • 설명 : 두 행렬의 원소 간 혹은 행열 원소와 스칼라 간의 비트별 논리곱(AND) 연산을 수행한다.
cv2.bitwise_or(src1, src2[ , dst [ , mask]]) >> dst

  • 설명 : 두 행렬의 원소 간 혹은 행열 원소와 스칼라 간의 비트별 논리합(OR) 연산을 수행한다.
cv2.bitwise_xor(src1, src2[ , dst [ , mask]]) >> dst

  • 설명 : 두 행렬의 원소 간 혹은 행열 원소와 스칼라 간의 비트별 배타적 논리합(XOR) 연산을 수행한다.
cv2.bitwise_not(src[ , dst [ , mask]]) >> dst
  • 설명 : 두 행렬의 원소 간 혹은 행열 원소와 스칼라 간의 비트 보수 NOT) 연산을 수행한다.

인수 설명 

  • src1 : 첫 번째 입력 배열 혹은 스칼라값
  • src2 : 두 번째 입력 배열 혹은 스칼라값
  • dst : 입력 배열과 같은 크기의 출력 배열
  • mask : 마스크 연산 수행(8단일 채널 배열) - 마스크 배열의 원소가 0이 아닌 좌표만 계산을 수행

예제 소스 코드

import numpy as np, cv2

image1 = np.zeros((300, 300), np.uint8)             # 300행, 300열 검은색 영상 생성
image2 = image1.copy()

h, w = image1.shape[:2]
cx,cy  = w//2, h//2
cv2.circle(image1, (cx,cy), 100, 255, -1)           # 중심에 원 그리기
cv2.rectangle(image2, (0,0, cx, h), 255, -1)

image3 = cv2.bitwise_or(image1, image2)         # 원소 간 논리합
image4 = cv2.bitwise_and(image1, image2)        # 원소 간 논리곱
image5 = cv2.bitwise_xor(image1, image2)        # 원소 간 배타적 논리합
image6 = cv2.bitwise_not(image1)                # 행렬 반전

cv2.imshow("image1", image1);           cv2.imshow("image2", image2)
cv2.imshow("bitwise_or", image3);       cv2.imshow("bitwise_and", image4)
cv2.imshow("bitwise_xor", image5);  cv2.imshow("bitwise_not", image6)
cv2.waitKey(0)

 

 

반응형

'영상처리 프로그래밍 > OpenCV-Python' 카테고리의 다른 글

관심 영역(ROI)  (0) 2022.11.16
OpenCV 채널 처리 함수  (0) 2022.11.03
OpenCV Python 영상 파일 I/O 처리  (2) 2022.10.06