import cv2 import numpy as np import matplotlib as plt from matplotlib import pyplot as plt cap = cv2.VideoCapture(1) while True: F_num,O_frame =cap.read() frame = O_frame.copy() mask_corner1 = np.array([300,130]) mask_corner2 = np.array([330,160]) frame = cv2.rectangle(frame,tuple(mask_corner1),tuple(mask_corner2), (255,0,0),2) mask = np.zeros(frame.shape[:2],np.uint8) mask[130:160,300:330]=255 # mask[int(mask_corner1[1]):int(mask_corner2[1]), int(mask_corner1[0]):int(mask_corner1[0])]=255 masked_img = cv2.bitwise_and(O_frame,frame,mask=mask) cv2.imshow("mask",masked_img) color = ('b', 'g', 'r') for i, col in enumerate(color): # histr = cv2.calcHist([frame], [i], None, [256], [0, 256]) hist_mask = cv2.calcHist([frame], [i], mask, [256], [0, 256]) plt.plot(hist_mask, color=col) plt.xlim([0, 256]) plt.draw() plt.pause(0.0001) plt.clf() cv2.imshow("Frame",frame) key = cv2.waitKey(1) if key== 27: break