[Tutor] How to count vehicle? I'm trying but my code don't increasing..
Steven D'Aprano
steve at pearwood.info
Mon Sep 1 21:47:36 CEST 2014
On Tue, Sep 02, 2014 at 01:15:59AM +0700, Whees Northbee wrote:
> There's no vehicle in my code, my video just contain vehicles so I think I
> don't need to use haar classifier, so I'm just do background subtraction to
> get foreground which is vehicle movement because there's no other movement
> except vehicle and maybe little movement from trees...
Do you realise that this is a list for learning Python? We're not
experts on video analysis. Probably nobody here except you has even the
faintest idea what a Haar classifier is or whether you need one or not.
> I just use opencv module, like to do background subtraction..
> No, the code don't have any error.
If the code doesn't have any errors, then it must be working correctly.
> The code is working smoothly to detecting vehicle and make rectangle of
> vehicle,
How do you know? What part of your code shows you that it is correctly
detecting vehicles?
> and I find center point of rectangle at (cx,cy)..
> I draw manually a line in video at coordinate (20,170) to (320,170)..
> When each of the rectangle vehicle cross or intersect with that line, I
> want to count it as 1..
> I already try:
>
> *)I think, since the line is in the same y coordinate, so if the center
> (cx,cy), cy=line y coordinate, the count increase
>
> if cy==170:
> counter=counter+1
>
> it doesn't work, no error but the counter stuck at 0
How fast are the vehicles moving? What is the resolution of the
measurements?
> Second try:
> *)I try to find distance between (cx,cy) and that line, if the distance is
> 0, counter increase
>
> dy=cy-170 #170 is y coordinate of line
> if dy==0:
> if (cx<=320) and (cx>=70):
> counter=counter+1
>
> don't have error, but the counter sometime add sometime no..
Earlier, you said that it never worked. Now you say it sometimes works.
Which is correct?
There is no difference between:
cy == 170
and
(cy - 170) == 0
So the question is, how do you know that cy ever equals 170?
Suppose the vehicle is moving towards the line. In the first frame, cy =
300. In the second frame, 250. In the third frame, 200. Then, 150, 100,
50 and then it's no longer in the picture. There is never a time that cy
== 170. The logic of your code is wrong. You need to think of a
different way to solve this problem.
Or, I could be completely wrong. I don't know, because I don't
understand how this video processing works. I am just guessing.
--
Steven
More information about the Tutor
mailing list