- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 20

Thema: Schnelle(!) Objekterkennung mit Raspi+USB-Cam

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2006
    Beiträge
    18
    Ich habe die hier http://download.p4c.philips.com/file...00_pss_deu.pdf
    Der Code dort oben kommt auf 10 fps. Problem ist, das Durchlaufen durch die "contour" (Liste).

    Code:
         while contour:
    
                    bound_rect = cv.BoundingRect(list(contour))
                    contour = contour.h_next()
    
                    pt1 = (bound_rect[0], bound_rect[1])
                    pt2 = (bound_rect[0] + bound_rect[2], bound_rect[1] + bound_rect[3])
                    points.append(pt1)
                    points.append(pt2)
                    centroidx=cv.Round((pt1[0]+pt2[0])/2)
                    centroidy=cv.Round((pt1[1]+pt2[1])/2)
                    centroid = (centroidx, centroidy)
                if len(points):
                    radius = abs(pt1[0]-pt2[0])/2 
                    if True: #radius > 2 and radius != 159:
                        self.centroid = centroid
                        self.radius = radius
                        if self.gui is True:
                            cv.Circle(color_image, centroid , radius , cv.CV_RGB(255,0,0), 1)
                            cv.Rectangle(color_image, pt1, pt2, cv.CV_RGB(255,0,0), 1)
                            cv.PutText(color_image, str(centroid)+" r="+str(radius), centroid, cv.InitFont(cv.CV_FONT_HERSHEY_SIMPLEX, 1, 1, 0, 2, 1), cv.CV_RGB(255,0,0))
    #                    print str(centroid)+" r="+str(radius)
                    else:
                        self.centroid = None
                        self.radius = None

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    01.04.2005
    Beiträge
    84
    Auf meinem Core2Duo mit 1.8GHz schafft der Code im Anhang (deine Schnipsel halbwegs lauffähig gemacht) mit Anzeigefenster auch nur ~22 Frames/s mit einer Playstation Eye (640x480, 30fps), ohne die contour-Liste immerhin 24fps. Ohne Gui schafft er in beiden Fällen fast 30fps. Die 4 fps auf der RasPi scheinen also leider realistisch.
    Ein winziges Stück mehr Geschwindigkeit brachte es, das cv.CreateMemStorage(0) vor die Endlos-Schleife zu setzen.
    Angehängte Dateien Angehängte Dateien
    • Dateityp: txt 1.txt (2,8 KB, 12x aufgerufen)

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2006
    Beiträge
    18
    ich könnte mir vorstellen, dass in contour einfach zu viele Objekte drin sind. Vielleicht kann man irgendwie in der Richtung optimieren.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2006
    Beiträge
    18
    9 fps mit folgendem Code.

    Code:
    import cv2
    import cv as cv
    import numpy as np
    import time
    
    show = False
    
    c = cv2.VideoCapture(0)
    c.set(3, 320)
    c.set(4, 240)
    width,height = c.get(3),c.get(4)
    print "width, height = ", width, ",", height
    
    start_time = time.time()
    i = 0
    while(1):
        _,f = c.read()
    
        #f = cv2.flip(f,1)
        #blur = cv2.medianBlur(f,5)
        hsv = cv2.cvtColor(f,cv2.COLOR_BGR2HSV)
        yellow = cv2.inRange(hsv,np.array((20,100,100)),np.array((30,255,255)))
        erode = cv2.erode(yellow,None,iterations = 3)
        dilate = cv2.dilate(erode,None,iterations = 10)
        contours,hierarchy = cv2.findContours(dilate,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
    
        for cnt in contours:
            x,y,w,h = cv2.boundingRect(cnt)
            cx,cy = x+w/2, y+h/2
           
            print "yellow :", x,y,w,h
            if show:
                cv2.rectangle(f,(x,y),(x+w,y+h),[0,255,255],2)
                cv2.imshow('img',f)
                if cv2.waitKey(25) == 27:
                    break
    
    cv2.destroyAllWindows()
    c.release()

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    25.01.2014
    Beiträge
    6
    Hey hi Leute!!!

    Ich bin neu zu diesem Forum. Ich bin ein student des Studiengang Mechatronik und bin gerade an der Arbeit mit Bilderkennung der Balle.

    Ich arbeite mit Matlab-Simulink.

    Ich kann Kreise erkennen, aber die Balle ist immer noch schwer.

    Sag mal bitte ein paar Tips und Tricks!!!

    Danke im Vorraus,

    Gruß
    Mandar

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2006
    Beiträge
    18
    Hallo,

    ich verstehe die Frage nicht.
    Was ist der Unterschied zwischen einem Kreis im Bild und einem Ball?
    Vielleicht, dass der Ball aufgrund der 3D-Form "unterschiedliche Farben hat"? Vielleicht brauchst Du dafür Schwellwerte (siehe cv2.inRange() in meinem Code)

    Viele Grüße

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    25.01.2014
    Beiträge
    6
    Ja, du hast es recht. Es gibt kein Unterschied ywischen ein Ball und ein Kreis. Ich benutze zur Zeit Matlab R2012a aber will Opencv2.4.8 benutzen. Kann jemand mir die 'Installations Procedure' erzählen. Ein English link würde Super Geil!!! Also ich habe kein Visual Studio, bitte achten!

    Danke im Vorraus,

    VG
    Mandar

Ähnliche Themen

  1. Schnelle USB FIFO
    Von flo1 im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 1
    Letzter Beitrag: 07.10.2010, 09:16
  2. günstige ccd Cam für USB ( OEM ? )
    Von looy78 im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 1
    Letzter Beitrag: 15.11.2009, 14:30
  3. USB Cam am microcontroller?
    Von .Johannes. im Forum Sensoren / Sensorik
    Antworten: 48
    Letzter Beitrag: 29.07.2006, 11:08
  4. USB-Cam an AVR
    Von Nitronic im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 02.01.2006, 20:50
  5. Daten von USB Cam an Microcontroller
    Von .Johannes. im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 04.08.2005, 14:37

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress