-
        

Ergebnis 1 bis 9 von 9

Thema: Videoframes online in VisualBasic-Array einlesen

  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379

    Videoframes online in VisualBasic-Array einlesen

    Anzeige

    Hallo zusammen!

    Ich habe eine erst mal noch etwas allgemeinere Frage weil ich noch in der Planungsphase des entsprechenden Projektes bin. Entschuldigt übrigens, sollte ich ein passendes Thema hier im Forum übersehen haben...

    Um mich kurz zu fassen: Ich habe eine Funkkamera, die ich in kürze auf meinen Roboter montieren werde. Ich möchte die Kamerabilder in Visual Basic (im Moment VisualBasic 2005 Express) auswerten – was genau ich da machen will, ist hier jetzt ja erst mal egal. Ich habe mich bisher nicht konkret mit diesem Basic befasst, programmiere aber seit langem in verschiedenen Basic-Dialekten (und anderen Sprachen) und werde mich dementsprechend (hoffentlich) halbwegs zügig eingewöhnen können.
    Wie ist es möglich, ein Frame von der Kamera in ein Array einzulesen? Und zwar mit hinreichend hoher Frequenz, so dass das Ganze noch eine Bewegung repräsentiert (also irgendwas >10 frames/sec)? Ich habe mir noch keine Videohardware angeschafft, deshalb wollte ich mal im vorhinein fragen, ob es da besser oder schlechter geeignete Varianten gibt. Es gibt ja z. b. Videohardware, die das Videosignal bereits selbst komprimiert, während andere Hardware das dem Prozessor überlässt. Ich könnte mir vorstellen, dass erstere dem Rechner mehr Zeit für andere Dinge lässt, könnte ich von so einer Hardware profitieren? Hat jemand Erfahrungen, was überhaupt für max. Frameraten möglich sind (abgesehn vom Videosignal macht)?
    Seid nicht genervt, wenn ich erstmal so "ins Blaue" frage, ich bin noch dabei, mich ins Thema einzuarbeiten, vielleicht könnt ihr mir ja mit ein paar Tipps und Links helfen.

    Vielen Dank! Viele Grüße!
    malte

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2004
    Ort
    München
    Alter
    49
    Beiträge
    444
    Hallo,

    zunächst auch mal recht allgemein geantwortet, ohne große Recherche nach anderen Threads:

    Es gibt Methoden, ein Standbild z.B. einer Webcam oder eines Grabbers in eine Picture-Box einzulesen, und von dort aus mit irgendeiner Methode auf die Pixelwerte zuzugreifen. Guckst Du unter www.robofriend.de und dort unter "Laserscanner" im Menü, da ist von einem Thread im Roboternetz die Rede. Das ist der Weg zur Information, der mir jetzt aus der hoheln Hand bekannt ist. Suche im Roboternetz nach "Bildverarbeitung" und "Visual Basic" bringt sicher auch was.

    AAABER: Visual Basic ist einfach zu langsam. Kann sein, daß es noch irgendwas fertiges zum Handhaben von Videos gibt, aber wenn Du mit selbstgeschriebenem Code in VB auf die Bilder zugreifen willst, kannst Du mit einem Bild alle paar Sekunden zufrieden sein.

    Gruß
    Tom.

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Danke für die Antwort!

    Die Suche hier im Forum war noch nicht so erfolgreich, werde es aber noch mal mit mehr Geduld wiederholen.
    Ein Standbild mittels Grabbers einzulesen, klingt etwas schmutzig, direkter kommt man nicht an den Datenstrom? Dass die genannte Methode etwas langsam ist, kann ich mir vorstellen. Aber ansonsten mit einer 380 x 240 Byte-Matrize zu hantieren, kann doch nicht so’n Problem sein. Ich erwäge alternativ noch Matlab zu verwenden, das hat ja extra eine Image Acquisition Toolbox, da Matlab aber erfahrungsgemäß tierisch langsam ist (weil Interpreter), hatte ich gedacht, dass ich mit VB compilierten Code erzeugen kann, mittels dessen ich möglicherweise dann auch irgendwelche dlls verwenden kann, die das eigentliche Einlesen von der Videohardware für mich übernehmen. VB2005 ist ja übrigens auch die .NET Variante von VB - keine Ahnung ob das noch'n Punkt ist...

    Nochmals Danke!
    malte

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    43
    Beiträge
    1.517
    Hallo malthy,

    was du da suchst ist im Forum schon alles vorhanden bzw. können wir noch basteln aus bestehen Teilen. Ich habe ein Video Server der mit allen PC Cams um gehen kann die ein DirektX fähigen Treiber mit bringen. Aber das tuen sich meines wissens alle. Es gibt ein Dll für SciLab die die daten in eine Array liefert. und dort ein gebunden werden kann.

    Des weiteren gibt es ein VideoServer der die Daten per TCP als jgs verschickt und eine DLL die diese dann wieder VB zur verfügung stellt.

    Die Frame rate selbst bei der TCP Variante liegt bei bis zu 20 FPS.
    Hab e das mal hier mit WLan getestet ich fan schon das man die Bewegug sauber erkennen konnte. Allerdienst habe ich das alles in C++ geschireben
    aber die dll's lassen sich zu mindetens in VB 6 ein binden. Mit VB2005 habe ich das noch nicht probiert aber mit meinen anderen ging es auch.

    Da Mr. niemand auch noch sowas braucht das man einzel bilder per VB enpfangen kann werde ich auch noch daran arbeiten.

    Also wenn ich dich jetzt neugiriegt gemacht habe kannst du dich ja mal melden

    gruß
    Home
    P: Meine Tochter (06.11.07) und Link
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Hallo,

    danke für die Infos! Die TCP-Variante ist ja auch noch etwas "indirekt", aber das scheint ja mal 'ne Möglichkeit zu sein. Was ist denn dabei (zeitlich) der begrenzende Faktor? Also worauf ich hinaus will: bleibt mir zwischen dem Update der Frames noch Rechenkapazität um mit den Daten zu rechnen? Letztlich geht es mir ja natürlich darum...
    Gestern Abend hab ich mein Kamerabild mit einer alten Videokarte latenzfrei nach Matlab bekommen. Aber ob ich da auf 20 f/s komme, wenn ich Frame für Frame in ein Array lese, muss ich noch testen - ich bin da sehr skeptisch... Ich melde mich hier sicher bald wieder.

    Dank&Gruß
    malte

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    43
    Beiträge
    1.517
    Es soll ja noch ne Möglichkeit ohne TCP geben die ist halt noch nicht fertig.

    Der begrenze Facktor für die Frames ist das Packen der Frames in jpg weil sons die Banbreite im Netz nicht reicht und der DirektX treiber der Cam.
    Bei USB Devices habe ich es leider schon oft erlebt das die die CPU sehr belasten.

    http://www.i-do-more.de/mine-robo/do...-Protokoll.zip

    Hier findes du meine gesammelten werk zu thema roboter PC Software
    vielleich kannst du ja was damit anfangen über ne kleine Rückmeldung würde ich mich freuen
    Home
    P: Meine Tochter (06.11.07) und Link
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  7. #7
    Erfahrener Benutzer Roboter Experte Avatar von marvin42x
    Registriert seit
    02.08.2005
    Ort
    Berlin
    Alter
    68
    Beiträge
    703
    Hallo malthy,

    Ich versuche mich auch zurzeit in VB2500. Das Thema Video in VB2005 steht dabei auch bei mir auf der Liste. Falls Du im Zuge der Entwicklung was von deinen Programmen zugänglich machen kannst wäre das eine Bereicherung, da ich auf diesem Gebiet nur über eingeschränkte Fähigkeiten verfüge. Ich werde aber mit der Zeit auch schon besser.
    Hier findest Du das, an dem ich gerade mitarbeite:
    http://www.marvins-lab.roboterbastler.de/


    Netter Gruß
    Und viel Erfolg weiterhin
    Die ersten zehn Millionen Jahre waren die schlimmsten. Und die zweiten Zehn Millionen Jahre, die waren auch die schlimmsten.url

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Ja, ich bleib dran am Thema - wenn's was neues gibt, melde ich mich.

    Gruß,
    Malte

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    22.06.2004
    Beiträge
    37
    Hallo, guck mal unter dem Stichwort "safearrays" im Internet.
    Gruß
    Lisbeth

Berechtigungen

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