First create a blank image using numpy to work on, and draw a circle and a rectangle on separate blank images.
import cv2 as cv
import numpy as np
blank = np.zeros((400,400), dtype ='uint8')
rectangle = cv.rectangle(blank.copy(), (30,30), (370,370), 255, -1)
circle = cv.circle(blank.copy(), (200,200), 200, 255,-1)
cv.imshow('Ractangle', rectangle)
cv.imshow('Circle', circle)
Bitwise AND
# bitwise AND - Intersecting regions
bitwise_AND = cv.bitwise_and(rectangle,circle)
cv.imshow('Bitwise AND', bitwise_AND)

Bitwise OR
# bitwise OR - Non-intersecting and intersecting regions
bitwise_OR = cv.bitwise_or(rectangle,circle)
cv.imshow('Bitwise OR', bitwise_OR)

Bitwise XOR
# bitwise XOR - Non-intersecting region
bitwise_XOR = cv.bitwise_xor(rectangle,circle)
cv.imshow('Bitwise XOR', bitwise_XOR)

Bitwise NOT
# bitwise NOT
bitwise_NOT_REC = cv.bitwise_not(rectangle)
cv.imshow('Bitwise NOT Rectangle', bitwise_NOT_REC)
bitwise_NOT_CIR = cv.bitwise_not(circle)
cv.imshow('Bitwise NOT Circle', bitwise_NOT_CIR)
cv.waitKey(0)


OpenCV 10: Bitwise Operation