| |
|
|
Sascha Patzsch | Hallo Leute,
ich suche eine Möglichkeit ein Livebild/Livevideo in Profan abzufragen.
Zu Erklärung was ich möchte: Ich habe ein Programm das einen die Geschwindigkeit von Modelautos anzeigt wenn man zwei Lichtschranken an den Comport anschliesst.
Meine Idee ist es wenn ich ein Videobild habe und zwei Punkte auf dem Videobild abfrage könnten doch die Punkte als Ein/Ausgangsschaltung wie in dem anderen Programm die Lichtschranken fungieren. Wenn es möglich ist einen Pixel oder z.B. 4 Pixel permanent die Farbe abzufragen und wenn dann bei einer Farbveränderung eine Funktion ausführt würde, wäre das ein guter anfang mit dem ich weiterkommen würde.
Ist ein Livebild in Profan überhaupt möglich ??
Gruss Sascha Patzsch |
|
|
| |
|
|
|
| Nun das Livebild ist warscheinlich weniger das Problem - dank MCI & Co - aber ich denke die FPS werden nicht reichen (für den Fall das Du eine WebCam nimmst) um eine genaue Schätzung hinzubekommen.
Wenn Du aber z.B. eine normale Videokamera nimmst - und diese an eine TV-Karte anschließt - ists schon bisl besser. Aber auch dann müsstest Du den Abstand zu den Autos auf mindestens 5 Meter bringen - oder den FOV der Kamera mit einer Linse erhöhen. ... und dann auch noch hoffe das die cam ne gute Belichtungszeit hat ...
Wenn das alles geklärt ist - dann hast nur noch 2/5 Problemen: Overlay erzeugen - Pixel eines Overlays getten.
Irgendwie hatte ich sowas schon mal vor ca. 8mio Jahren vor Ch. gemacht - eine Art Bilderkennung war es - welche kleine Kärtchen an einer riesigen Tafel anhand der Farbe erkennt und das Ergebnis 1:1 am Monitor darstellt. Glaube das System ist heute noch erfolgreich im Einsatz. Die Mädelz vor der Tafel können einfach ihre Kärtchen frei verschieben/setzen - und wenn einmal keiner mehr vor der Tafel steht - dann wird das Bild eingelesen. Ob jemand vor der Tafel steht oder nicht wird dabei anhand einer weißen Linie an der Wand/Unterhalb der Tafel erkannt - welche durchgehend lesbar sein muß.
Also - klar gehz - - besser aber Du schließt Dich zu diesem Zweck mit GDL zusammen (ein Mitglied hier) - der bastelt dafür ne Platine warscheinlich schneller alswa gucken können. Dann must Du nur noch ein kleines Proggchen dazu pinseln - und es wäre 100x genauer.
Salve, iF |
|
|
| |
|
|
|
Frank Abbing | Hi,
du vereinfachst die ganze Sache, wenn du das Videobild in schwarz-weiss umrechnest. Die ProSpeed.dll bietet hierzu eine schnelle Assemblerfunktion: BlackWhite() KompilierenMarkierenSeparierenBlackWhite (F,X,Y,B,P)
Macht aus einer Grafik auf dem Bildschirm (oder Teilen davon) ein Schwarz-Weiß Bild.
F : Long - Handle der Zielbitmap (%HDC oder eine mit LoadExtBmp() / CreateExtBmp() erzeugte) oder 0
X : Long - X Offset zum Bildschirm
Y : Long - Y Offset zum Bildschirm
B : Long - Handle eines mit InitExtFX() oder CreateExtFX() erzeugten Bytes-Arrays (Quellbitmap)
P : Long - Priorität des Effekts, 0-255 (127=normal)
Ergebniss: Long - 0.
Die Grafik des Bildschirms wird in ein Schwarz-Weiß Bild umgewandelt. X und Y geben die linke obere Ecke an, ab wo der Bildschirm scharz-weiß gemacht wird. Die Grösse des Rechtecks ergibt sich aus der Grösse der Bitmap, die in InitExtFX() / CreateExtFX() angegeben wurde.
Wenn sie BlackWhite() innerhalb einer Schleife mit wechselnder Priorität aufrufen, gibt das einen ganz erstaunlichen Effekt!
Je niedriger die Priorität ist, desto mehr überwiegt die Farbe Schwarz, je höher sie ist, desto mehr überwiegt die Farbe Weiß.
Für F kann entweder eine der Profan-Bitmaps angegeben werden oder eine, die mit LoadExtBmp() / CreateExtBmp() erzeugt wurde. Wird für F aber 0 übergeben, dann wird die Funktion zwar ausgeführt, aber nicht auf den Bildschirm gebracht.
BlackWhite() ist ziemlich schnell und arbeitet in Echtzeit. Generell gilt: Je kleiner die Fläche, desto schneller arbeitet die Funktion.
Bevor die Funktion angewendet werden kann, muß eine Vorbereitung mit InitExtFX() stattgefunden haben.
Die Daten im Byte-Array B werden durch Aufruf dieser Funktion nicht verändert.
array&=InitExtFX(exhdc&) Handle (Byte-Array) zu einer Bitmap erzeugen
BlackWhite(%HDC,0,0,array&,127)
FreeExtFX(array&) später wieder freigeben
|
|
|
| |
|
|
|
Sascha Patzsch | Hey Ihr antwortet ja schnell, is ja super.
Meine Grabbercard (USB) ist meiner Meinung ausreichend mit den FPS die man benötigt.
Ich habe auch eine Software die aus einem AVI Video die Geschwindigkeit berechnen kann. Aber der Weg ist umständlich. Erst Avi aufnehmen dann einen Gegenstand auf dem Avi Markieren und dazu die Grösse eingeben. Danach die FPS eingeben und zwei drei oder vier Punkte markieren. Danach per Excel umrechnen.
Ich versuche dann mal GDL zu kontaktieren. Muss mich erstmal durch schauen hier wie man Member kontaktiert.
Gruss Sascha |
|
|
| |
|
|
|
| GDL hat z.B. grad in die Shoutbox geschrieben - klicke einfach sein NICK an - und dann auf PM Personal Message
Am einfachsten ists - gehe oben auf POST und dann auch NEUE NACHRICHT und dann im Feld AN: einfach GDL.
Salve, iF |
|
|
| |
|
|
|
GDL | Hi Sascha,
habe mitgelesen,wäre besser wennste MSN hast.Direkte Rückfragen mit gleichzeitigem Zwischenfragen wäre bei dieser Sache sinnvoller.
Servus Georg |
|
|
| |
|
|