Back

OpenCV 비트연산

openCV 비트 연산

비트 연산

bitAnd = cv2.bitwise_and(img1, img2)
bitOr = cv2.bitwise_or(img1, img2)
bitXor = cv2.bitwise_xor(img1, img2)
bitNot = cv2.bitwise_not(img1)

비트 연산으로 이미지 마스킹

mask = np.zeros_like(img)
cv2.circle(mask, (150,140), 100, (255, 255, 255), -1)

masked = cv2.bitwise_and(img, mask)

# 2차원 배열만 사용
mask = np.zeros[img.shape[:2], dtype=np.uint8)
cv2.circle(mask, (150,140), 100, (255, 255, 255), -1)

masked = cv2.bitwise_and(img, img, mask=mask)

영상의 차이

틀린 그림 찾기

# 두 영상의 절대값 차 연산
diff = cv2.absdiff(img1_gray, img2_gray)                  # 두 이미지 차이 부분만 픽셀값 남아있음

# 차 영상을 극대화하기 위해 쓰레드홀드 처리 및 칼라 변환
_, diff = cv2.threshold(diff, 1, 255, cv2.THRESH_BINARY)  # 두 이미지 차이부분 모두 255
diff_red = cv2.cvtColor(diff, cv2.COLOR_GRAY2BGR)         # 차이 부분 (255, 255, 255)로 바뀜
cv2.imshow('diff_red', diff_red)

diff_red[:,:,2] = 0                                       # 차이 부분 (255, 255, 0)으로 바뀜
cv2.imshow('diff_red', diff_red)

# 두 번째 이미지에 변화 부분 표시
spot = cv2.bitwise_xor(img2, diff_red)                    # 차이 부분 (0, 0, 255)로 바뀜 (빨강)

# 결과 영상 출력
cv2.imshow('img1', img1)
Built with Hugo
Theme Stack designed by Jimmy