Я пишу программу, которая использует камеру контроля скорости (с платой Raspberry Pi Camera Board) и должна делать фотографии автомобилей, скорость которых выше заданной, и отправлять эти фотографии полицейскому, ожидающему дорогу, и сохранятьномер машины.
У меня есть видео, которое записывает под этим углом: Угол захвата У меня есть несколько проблем:
- Есть много автомобилей, которые едут одновременнои мне нужно получить информацию обо всех них
- Я не могу рассчитать скорость - возможно, проблема возникает из-за того, что я не знаю, как справляться с несколькими автомобилями вместе
Я пробовал алгоритм, который описан здесь, но, возможно, я не очень хорошо его понимаю:
Найти скорость автомобиля по изображениям
Это частьмоего кода, где я пытаюсь определить скорость: * В коде, который я обнаруживаю точку в центре автомобиля и следуя ей во время движения автомобиля, я понимаю, что мне нужно получить точки X, Y и точки X1, Y1,время между ними и сделать расчет.Но когда я использую это: print('centre',centroid[0:2])
я получаю только одну точку (х).
def update_vehicle(self, vehicle, matches):
# Find if any of the matches fits this vehicle
for i, match in enumerate(matches):
contour, centroid = match
vector = self.get_vector(vehicle.last_position, centroid)
if self.is_valid_vector(vector):
vehicle.add_position(centroid)
self.log.debug("Added match (%d, %d) to vehicle #%d. vector=(%0.2f,%0.2f)"
, centroid[0], centroid[1], vehicle.id, vector[0], vector[1])
#i detect the centre of the car and follow it, I've thought, how can I use the info of points of the centre and
#use it to detect the car, the problem is: I can't understand how to take this info,
#i need the X & Y point,
print(centre',centroid[0:2])
return i
# No matches fit...
vehicle.frames_since_seen += 1
self.log.debug("No match for vehicle #%d. frames_since_seen=%d"
, vehicle.id, vehicle.frames_since_seen)
return None
и это функция centroid , которую я использую там:
def get_centroid(x, y, w, h):
x1 = int(w / 2)
y1 = int(h / 2)
cx = x + x1
cy = y + y1
return (cx, cy)
Я буду рад помочь.Спасибо.