32 lines
No EOL
1 KiB
Python
32 lines
No EOL
1 KiB
Python
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 |