- 3D-Druck Einstieg und Tipps         
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
    485
    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

  2. #2
    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)

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    18.01.2012
    Beiträge
    485
    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

  4. #4
    HaWe
    Gast
    da geht es mir wie dir, deshalb will ich ja auch nicht Python nutzen, sondern C(++).
    Aber es war als gemeinsame Basis gedacht, wo wir starten und wo es hin gehen soll, und das ist in den Videos sehr gut zu sehen.
    Schau sie dir doch bitte mal ganz genau an, falls du es nicht sowieso schon gemacht hast.

    https://www.youtube.com/watch?v=MWK55A0RH0U
    https://www.youtube.com/watch?v=qcF5PFXZC3o
    https://www.youtube.com/watch?v=fns19y9NOpM
    https://www.youtube.com/watch?v=tpwokAPiqfs

    Hast du auch mal die beiden Beispielprogramme auf der Tutorial-Seite heruntergeladen und ausprobiert?
    http://opencv-srf.blogspot.de/2010/0...eperation.html
    Sind auch eine sehr gute Basis, um damit zu starten.

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    18.01.2012
    Beiträge
    485
    Hallo HaWe,
    die Beispiele habe ich mir angesehen. So ähnlich habe ich
    schon mal durch probiert.
    Ich sagte ja, die Seite openCV. Org hat sich sei dem ganz
    schön geändert.
    Schon mal hier gewesen. (Python u. C++)
    https://www.learnopencv.com/

    Ich bitte um Geduld, muss erst den Pi 2 und den Odroid
    raus suchen und aufbauen.Die USB-Camera muss ich auch noch
    finden.
    Melde mich dann wieder.
    Da mein alter i386 vor einem Jahr (da war alles mit drauf) das zeitliche
    gesegnet hat, muss ich erst meine Sicherheitskopien sichten.
    Das dauert alles ein paar Tage oder etwas mehr.

    Gruß
    ARetobor

    PS
    Mein Englisch ist nicht besonders.
    Mit Google wird die Übersetzung aber schon recht ordentlich

  6. #6
    HaWe
    Gast
    Zitat Zitat von ARetobor Beitrag anzeigen
    ...
    Ich sagte ja, die Seite openCV. Org hat sich sei dem ganz
    schön geändert.
    Schon mal hier gewesen. (Python u. C++)
    https://www.learnopencv.com/

    Ich bitte um Geduld, muss erst den Pi 2 und den Odroid
    raus suchen und aufbauen.Die USB-Camera muss ich auch noch
    finden.
    Melde mich dann wieder.
    stimmt - nein, das kannte ich noch nicht. Tatsächlich ist die Region Of Interest (ROI) genau das, was Shane Gingell ("Robo tech") in seinen Videos mit Python gemacht hat, sowohl um die laufenden Bälle für den Ball Color Sorter und auch was die Spuren- und Kursbestimmung bei seinem Linienfolger angeht.

    ich kannte nur die alten Codes teilweise, als man das alles mit C noch haarklein selber programmieren musste. Das war echt extrem...
    Sicher auch ein wesentlicher Grund, weshalb der Python Code im Vergleich so läppisch simpel aussah! Das gibt mit aber auch wieder mehr Hoffnung, mit den C++ Bordmitteln ebenfalls diese neuen Meta-Funktionen schnell und bequem aufrufen zu können.
    Insgesamt habe ich jatzt tatsächlich schon viel mehr Optimismus, was die beabsichtigte Portierung solcher Apps für C++ angeht.

    Aber lass dir ruhig Zeit, ich nutze sie mit zunehmendem Erfolg, um das besagte Tutorial durchzuarbeiten. Das ist wirklich gut, wenn es auch schon oft sehr an die Grenzen meiner Kenntnisse geht.


    Eine Sache wäre mir allerdings als allererster Schritt sehr wichtig:
    Ob es möglich ist, die ganzen Libs, die hier aufgeführt sind

    -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab

    alle gemeinsam in 1 einzige "Über-Lib" zu vereinigen ( opencv_all.so ), die man dann nur noch per
    -lopencv_all
    kompilieren / builden muss?

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    18.01.2012
    Beiträge
    485
    Hallo HaWe,
    das mit den Libs kann ich im Moment nicht beanworten.
    Noch dazu gab es wie ich feststellen mußte, Unterschiede
    openCV 2 und 3.
    Programme die mit der 2 Version funktionierten machten in der
    3 Version Probleme.
    Es wird also sinnvoll sein gleich ein BS mit openCV 3.xx zu benutzen.
    Das habe ich aber noch nicht weiter verfolgt.

    Gruß
    AR

    PS
    Kenntnisse erwerben kann halt mühsam sein.

Ä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
  •  

Labornetzteil AliExpress