On 01/09/14 16:13, Whees Northbee wrote:
Hello, I'm trying to counting vehicle, but I can't increasing it, I use
python 2.7.6 and opencv 2.4.9

I don;t understand what you mean.
There is no vehicle in your code?

The code is overly complex for me to read through and it uses a module that I don't have so I'm not even attempting to run it... And it looks like it has a syntax error too - an if block missing.

Can you provide more details about what is happening?

Also try inserting some print statements so that you can
see what your code is doing.

That way you might see the problem yourself.

import cv2

bgsMOG = cv2.BackgroundSubtractorMOG2(500,30,True)
cap         = cv2.VideoCapture("d:\MOV_5680.avi")
counter    =0
if cap:
     while True:
         ret, frame = cap.read()

         if ret:
             fgmask = bgsMOG.apply(frame, None, 0.01)
             cv2.line(frame,(20,170),(320,170),(175,175,0),1)
             contours, hierarchy = cv2.findContours(fgmask,
cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)

             ax1=20     #coordinate of line where vehicle will be count
if intersect
             ay1=170
             ax2=320
             ay2=170

             try: hierarchy = hierarchy[0]
             except: hierarchy = []
             for contour, hier in zip(contours, hierarchy):
                 (x,y,w,h) = cv2.boundingRect(contour)
                 if w > 10 and h > 15:
                     cv2.rectangle(frame, (x,y), (x+w,y+h), (180, 0, 0), 1)
                     x1=w/2      #to find centroid
                     y1=h/2
                     cx=x+x1
                     cy=y+y1
                     centroid=(cx,cy)
                     cv2.circle(frame,(int(cx),int(cy)),1,(0,255,0),-1)

                     dy=cy-170   #my first code to increase counter
                     if dy==0:
                         if (cx<=320)and(cx>=70):
                             counter=counter+1

                     if cy==170:

             cv2.putText(frame, str(counter),(10,150),
cv2.FONT_HERSHEY_SIMPLEX,2, (255, 0, 0), 1, True)
             #cv2.namedWindow('Output',cv2.cv.CV_WINDOW_NORMAL)
             #cv2.resizeWindow('Output',320,180)
             cv2.imshow('Output', frame)
             cv2.imshow('FGMASK', fgmask)


             key = cv2.waitKey(100)
             if key == ord('q'):
                 break
cap.release()
cv2.destroyAllWindows()


--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to