通过视频Python

时间:2018-09-30 13:47:21

标签: python numpy camera raspberry-pi

我正在编写一个使用测速相机的程序(带有Raspberry Pi相机板) 并且应该给速度比给定速度更高的汽车拍照,然后将照片发送给在路上等着的警察,以节省汽车的数量。

我有一个从这个角度录制的视频: Angle of capturing 我有几个问题:

  1. 有许多汽车同时行驶,我需要获取所有这些汽车的信息
  2. 我无法计算速度-也许是因为我不知道如何一起处理几辆车而发生问题

我尝试了此处描述的算法,但可能我不太了解:

Find the speed of the vehicle from images

这是我尝试检测速度的代码部分: *在代码中,我检测到汽车中心的一个点,并在汽车行驶时跟踪该点,我知道我需要获取X,Y点和X1,Y1点以及它们之间的时间,并进行计算。 但是当我使用它时:print('centre',centroid[0:2])我只得到一点(x)。

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)

我将很高兴获得帮助。 谢谢。

0 个答案:

没有答案