Amazing-Python-Scripts

Форк
0
44 строки · 1.4 Кб
1
import numpy as np
2
from matplotlib import pyplot as plt
3
import cv2
4
import io
5
import time
6
# Camera stream
7
cap = cv2.VideoCapture(0)
8
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
9
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1280)
10
cap.set(cv2.CAP_PROP_FPS, 30)
11
# Video stream (optional, not tested)
12
# cap = cv2.VideoCapture("video.mp4")
13
# Image crop
14
x, y, w, h = 800, 500, 100, 100
15
x, y, w, h = 950, 300, 100, 100
16
heartbeat_count = 128
17
heartbeat_values = [0]*heartbeat_count
18
heartbeat_times = [time.time()]*heartbeat_count
19
# Matplotlib graph surface
20
fig = plt.figure()
21
ax = fig.add_subplot(111)
22
while True:
23
    # Capture frame-by-frame
24
    ret, frame = cap.read()
25
    img = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
26
    crop_img = img[y:y + h, x:x + w]
27
    # Update the data
28
    heartbeat_values = heartbeat_values[1:] + [np.average(crop_img)]
29
    heartbeat_times = heartbeat_times[1:] + [time.time()]
30
    # Draw matplotlib graph to numpy array
31
    ax.plot(heartbeat_times, heartbeat_values)
32
    fig.canvas.draw()
33
    plot_img_np = np.fromstring(fig.canvas.tostring_rgb(),
34
                                dtype=np.uint8, sep='')
35
    plot_img_np = plot_img_np.reshape(
36
        fig.canvas.get_width_height()[::-1] + (3,))
37
    plt.cla()
38
    # Display the frames
39
    cv2.imshow('Crop', crop_img)
40
    cv2.imshow('Graph', plot_img_np)
41
    if cv2.waitKey(1) & 0xFF == ord('q'):
42
        break
43
cap.release()
44
cv2.destroyAllWindows()
45

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.