- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 39

Thema: C/C++ Beispielprogramme mit USB Cam und openCV?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    18.01.2012
    Beiträge
    484
    Hallo HaWe,
    welche Auflösung und Bildwiederholrate benötigst du?
    Welcher Pi soll verwendet werden.
    Warum muß es eine USB-Cam sein?
    Ist es ein privates Projekt?

    Ich habe mich bis vor zwei Jahren mit dem Thema
    beschäftigt und habe es erst mal, zugunsten meines
    Turbinen-Generator-Projekt, auf Eis gelegt.
    Muß mich halt wieder rein arbeiten.
    Bin aber der Meinung, dass der Pi zu schwach ist.
    Für Experimente ist er aber sicherlich geeignet.

    Gruß
    AR

  2. #2
    HaWe
    Gast
    Zitat Zitat von ARetobor Beitrag anzeigen
    Hallo HaWe,
    welche Auflösung und Bildwiederholrate benötigst du?
    Welcher Pi soll verwendet werden.
    Warum muß es eine USB-Cam sein?
    Ist es ein privates Projekt?
    Ich habe mich bis vor zwei Jahren mit dem Thema
    beschäftigt und habe es erst mal, zugunsten meines
    Turbinen-Generator-Projekt, auf Eis gelegt.
    Muß mich halt wieder rein arbeiten.
    Bin aber der Meinung, dass der Pi zu schwach ist.
    Für Experimente ist er aber sicherlich geeignet.

    Gruß
    AR
    hallo,
    zu deinen Fragen:
    zu den Frames: 10-15 fps müssten ausreichen, es ist ja für die o.g. Beispiele nicht so extrem zeitkritisch, und selbst in Python funktionieren sie ja mit den Möglichkeiten, die ein Pi bietet (teilw sogar nur B+, teilw.auch 2 oder 3, siehe die Videos!). Es ist aber für mindestens einen Pi 2 (quadcore) gedacht.

    USB cam, weil die PiCam von den GPIOs insb. die für i2c-0 mit belegt, es soll aber i2c-0 als zusätzlicher I2C Port verfügbar bleiben. Außerdem sind die viel billiger als die PiCam.

    privates Projekt - auf jeden Fall privat, ja. Es geht um praktische Anwendungshandwerkzeuge, die man einfacher als die unglaublich komplizierten einzelnen opencv Einzelmodule ansprechen können soll. Quasi einen Haufen von zusätzlichen Wrappern, die es in C++ genauso einfach machen sollen, die opencv Funktionen zu verwenden, wie es in Python möglich ist. Es gibt zwar -zig Tutorials für opencv mit C++, aber der Code dort ist extrem monströs und unverständlich, und man braucht alleine linker flags, die so lang sind dass sie die Enzyklopedia Galactica sprengen würden. Auch hier bräuchte man eine radikale Vereinfachung, insgesamt so etwas wie ein "Arduino-Wiring" für den Pi mit g++ und opencv.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    18.01.2012
    Beiträge
    484
    Hallo HaWe,
    du hast die Auflösung vergessen,
    640x480 macht schon 307200 Bildpunkte,
    bei 24 Bit Farbauflösung also mal 3 gleich 921600.
    Bei höherer Auflösung wird es dann schon für den kleinen
    Pi 2 recht schwer.
    Nun, privat kommen wir vielleicht zusammen, wenn nicht
    zu viel Termindruck entsteht.
    Wie gesagt, mein Generator-Projekt braucht noch einige Zeit.




    Gruß
    AR

  4. #4
    HaWe
    Gast
    die Auflösung weiß ich nicht, sie soll aber auch variabel bleiben - ich habe eine Cam in dieser Art:
    http://www.ebay.de/itm/381563562701?...%3AMEBIDX%3AIT
    vermutlich werden es 640x480 sein, vlt auch 800x600, keine Ahnung, aber die Lösung soll ja auch universell für andere handelsübliche USB cams mit höherer oder niedrigerer Auflösung funktionieren. Notfalls muss der User dann eben eine langsamerere Bildverarbeitung in Kauf nehmen.

    Ich habe inzwischen auch ein Tutorial über Blob Detection gefunden, eigentlich VisualC++ (weshalb ich es wschl bisher nicht gefunden habe für Pi und GCC), aber die Beispiele funktionieren offenbar mit kleinen Fehlern (waitKey funktioniert nicht) auch mit g++ : http://opencv-srf.blogspot.de/2010/0...eperation.html
    Hier funktioniert zumindest meine Cam auf Anhieb und mit leidlich erträglicher Geschwindingkeit. Die Linker flags sind allerdings der pure Horror.
    Ist auch recht gut erklärt, was die Grundfunktionen angeht, könnte allerdings noch etwas handlicher sein, aber mir geht es ja zusätzlich auch um praktische Anwendungen wie die oben verlinkten, quasi samt simplifiziertem C++ Code zum Nachbauen.
    Ich fange aber auf jeden Fall schon mal an und les mich in das VisualC++ Tutorial ein.

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    18.01.2012
    Beiträge
    484
    Hallo HaWe,
    Welchen Pi verwendest du zum Testen??

    Ich habe mich für mein Projekt erst mal auf 640x480x24
    festgelegt.Die USB-Kamera die ich verwende macht ca 60 fps.
    Allerdings ist USB 3.0 nötig, dadurch verwende ich den ODROID XU4.
    Zu deiner Information:
    Mein primäres Ziel ist ein Programm für den ODROID
    Ich verwende von openCV nur einen Teilbereich.
    Die Kamera wird mit Linux Driver (Programm) gesteuert.
    Die einzelnen Bilder werden dann an openCV übergeben.
    Bild Konvertierung und weitere Bildbearbeitung wird mit AssemblerProgramme
    durchgeführt.
    Die kleinen Programme rufen dann über SYCALL und übergeben dann
    Informationen und Steuerbefehle.
    Ich habe mir mal wieder die openCV.org angeschaut,
    sieht sehr gekürzt aus.
    Eines noch, ich arbeite nicht mit Windows.


    Gruß
    AR

  6. #6
    HaWe
    Gast
    hallo,
    ich habe nur den Pi 2 samt 1024x600 HDMI TFT, und nur für den samt Jessie brauche ich persönlich das openCV, nicht für Windows.
    Odroid und Sycall kenne ich nicht und werde ich sicher auch gar nicht brauchen, denn Python braucht sie ja auch nicht für openCV, und Python ist das Maß aller Dinge, die mir für die C++ Wrapper vorschweben. Je einfacher also, desto besser. Guck dir ruhig auch mal genau die Python Codes an, die man in den 4 Videos recht gut erkennen kann und die auch einigermaßen gut erklärt werden bzw. sogar selbsterklärend sind. So soll es dann später auch in C++ aussehen.
    Die Cam-Auflösung wird hier automatisch vom Programm eingestellt, so sollte es auch sein.
    Grundsätzlich dient das Video-Fenster auch nur zur Orientierung für den User/Programmierer und zum Debuggen, denn eingesetzt soll openCV ja werden, um für Robotermodelle über eine Objekterkennung (Farbe, Größe, Form, Anzahl, Lokalisierung) eine Orientierungsmöglichkeit zu bieten. Hier ist für den Roboter natürlich nicht das Video selber interessant (und schon gar nicht seine Größe oder Framezahl oder Farbtiefe), sondern nur die nackten digitalen BLOB-Daten. Hiernach muss sich die Programmierung richten, um Bälle zu erkennen, Hindernissen auszuweichen, Objekte gezielt zu suchen und anzusteuern, Routen zu erkennen, usw.
    Farben erkennt openCV ja wohl nativ als BGR Format (warum nicht RGB, ist mir ein Rätsel), aber sinnvoll ist sicher die Umwandlung ins HSV Format, denn Farben haben ja je nach Beleuchtung den gleichen Farbton, und nur unterschiedliche Sättigung und Luminiszenz (bei weißem Licht); das erleichtert dann die Farberkennung innerhalb gewisser Thresholds:

    cvtColor(imgOriginal, imgHSV, COLOR_BGR2HSV); //Convert the captured frame from BGR to HSV

    So macht es das openCV Tutorial, das erscheint mir sehr sinnvoll.
    Geändert von HaWe (16.03.2017 um 13:11 Uhr)

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    18.01.2012
    Beiträge
    484
    Hallo HaWe,
    Python ist nicht meine Wahl. Alle Versuche die ich gemacht
    habe waren langsamer als C und Assembler Programme.
    Zum Verständnis:
    https://de.wikipedia.org/wiki/Systemaufruf
    Alle Programme Verwenden SYSCALL um Kernefunktionen
    aufzurufen.
    zB. Datei öffnen Datei lesen Datei schließen.
    Die kleinen Assembler Dateien haben den Vorteil den Kernel direkt
    anzusprechen und sind somit schön schnell!
    Automatisch:
    Es gibt nur Vorgaben (Parameter) die durch Programme abgearbeitet werden.
    Wenn Automatisch heißt, ich habe keinen Einfluss, dann ist das immer
    ein Problem!
    Videos mit Programm-Code sind mir persönlich ein Gräuel.
    Ich blätter lieber beim Lesen.



    Gruß
    AR

Ähnliche Themen

  1. suche Beispielprogramme für den RP6
    Von enni im Forum Robby RP6
    Antworten: 10
    Letzter Beitrag: 02.01.2009, 17:28
  2. Beispielprogramme? Anfänger
    Von jojo.glaser im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 17.06.2006, 09:11
  3. Beispielprogramme für C
    Von solo im Forum Robby CCRP5
    Antworten: 6
    Letzter Beitrag: 14.02.2005, 18:06
  4. Beispielprogramme zur LPT1 Programmierung
    Von Sokrates87 im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 07.01.2005, 18:57
  5. erklärung der beispielprogramme
    Von xandl33 im Forum Robby CCRP5
    Antworten: 6
    Letzter Beitrag: 03.05.2004, 01:51

Berechtigungen

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

LiFePO4 Speicher Test