Я создаю следующий сценарий для использования с RPi 4, с веб-камерой USB и датчиком TFMini Plus Lidar (также с подключенным USB):
import serial
import datetime
import cv2,io,imutils
from imutils.video import VideoStream
from random import randint
from time import sleep, time
interval = 1
list =[0, 0]
ser = serial.Serial(
port="/dev/ttyUSB0",
baudrate = 115200,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
while 1:
try:
cap, img = cv2.VideoCapture(0)
li = ser.readline().decode("utf_8").rstrip('\n\r')
if len(li) > 0:
li = float(li)
print(li)
print(type(li))
list[0] = list[-1]
list[-1] = li
print (list)
x = list[-1]
y = list[0]
#speed calculation
kmh = abs ((x - y) / (interval)) * 3.6
#braking distance calculation
d = (kmh ** 2) / (250 * 0.8)
print ('speed', kmh, 'km/h')
print ('total distance:', list[-1], 'm')
print ('breaking distance:', d, 'm')
print ('\n')
if d < x:
#cv2.imshow('Screen',img)
except ZeroDivisionError:
print('it was zero')
print('\n')
continue
Лидар будет считывать расстояние каждый секунда (x), затем с парой показаний он вычислит расстояние пробоя (d). Теперь я хочу иметь возможность запустить веб-камеру в случае, если разрывное расстояние меньше, чем расстояние от датчика до входящего объекта (d
Задача: каждый раз, когда d
Кроме того, изображение с камеры требует много времени для загрузки. Как я могу сделать это быстрее?
Любая помощь будет высоко ценится. Спасибо