habe mal ein problem aus gesondert
das packen
https://www.roboternetz.de/phpBB2/viewtopic.php?t=10384
Gruß
hallo commander7,
den code habe fast nicht gebraucht nur für die CallBack procedure da brauchte ich nich alles selbst denken.
ver senden tut indirekt über die winsock es gibt in Delphi ein Klasse dafür
da muß man dann die Thread's(Server) nicht selbst machen.
Naja die Anzeige könnte man sicher noch schneller machen und man müsste mal über legen ob man nicht den stream packen kann und am ende wieder aus packen.
Mit was für rechner hast du getestet ?
Gruß
P: Meine Tochter (06.11.07) und https://www.carnine.de
M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken
habe mal ein problem aus gesondert
das packen
https://www.roboternetz.de/phpBB2/viewtopic.php?t=10384
Gruß
P: Meine Tochter (06.11.07) und https://www.carnine.de
M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken
hallo number5,
hab ein 1.2 GHz AMD mit 256MB RAM, also schon ein etwas älteres System.
Hab noch ein paar Fragen:
Grundsätzlich wie kommen die 3 Bytes pro Pixel zustande (Grundsatzfrage) ?
Wie kommst du nun an die einzelnen Pixel, etwa mit der Picture.Point Methode?
gruss commander7
Ich habe mir den Quelltext jetzt nicht angesehen.... aber prinzipiell werden bei Bitmaps jeweils 3 Bytes pro Pixel gespeichert, eben RGB: 1x Rotanteil, 1x Grünanteil und halt noch 1x Blauanteil...
Hmm, wie das jetzt in dem Code oben ist, kann ich nicht sagen, aber mit der Point-Funktion bekommt man einen Wert vom Typ Long, den man noch in seine RGB-Bestandteile trennen muss (ist eine einfache Funktion, falls Interesse besteht, werd ich sie nochmal raussuchen).
Gruß, Trabukh
"Der Mensch wächst am Widerstand" (Werner Kieser)
@Trabukh
der Code ist nicht dabei ist nur die exe.
@Alle
Grundsätzlich ist die GetPixel oder Setpixel methode bei den Raten bzw im Video bereich gift den die ist viel zu langsam und alles Flackert und brauch zeit.
Imm dran denke ein bitmap kann man auch als Array of byte betrachten wenn man es mit 24bit farb tife nimmt. Natürlich geht auch mit andern farb tiefen aber da ist das um rechnen dann nicht so einfach.
In der Software oben bekomme ich das Bild in der Callback routine des Vorschau Streams. Und wenn die andere seite bereit ist pumpe ich die daten rüber. Also um so dicker die leitung umso mehr frames (Bilder Pro sekunde). Bin man über legen ob es nicht besser ist das array zu packen und dann zu senden sollte eingendlich mehr frames zu lassen als jetzt.
aber dann wird das array dynamisch und man hat andere Probleme.
Mal sehen ob ich da noch ne neue Version mache.
Gruß
P: Meine Tochter (06.11.07) und https://www.carnine.de
M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken
@commander7
wie weit bist du ? reicht dir jetzt mein Programm oder wie willst du weiter machen ?
@all
wenn ihr so fleissig runter ladet währe mal schön ein Feedback zu bekommen.
Gruß
P: Meine Tochter (06.11.07) und https://www.carnine.de
M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken
hallo Number5,
Hatte die Videoübertragung etwas aus den Augen verloren. Zum einen hatten ich (vorher endlich letzte Prüfung) noch Schulschluss und da ziemlich viel Zeit gebraucht und zum anderen habe ich mich mit der Kollisionserkennung beschäftigt.
Tja, ich habe gemerkt, dass es mir schon bei den Grundlagen fehlt. Hab noch nicht viel mit Bildern aus Pictureboxes programmiert, zudem kommt erschwehrend dazu, dass ich VB6 oder lieber VB .NET programmiere.reicht dir jetzt mein Programm oder wie willst du weiter machen ?
Kennst du Seiten wo dass mit dem Umwandeln der Pixel in Arrays of Byte beschrieben ist und wie ich dieses Array wieder zu einem Bild zusammenbaue. Oder vielleicht halt auch ein paar Codeschnipsel von dir, wenn das möglich ist.
Ist wirklich schon top, auch das flakern ist raus.wenn ihr so fleissig runter ladet währe mal schön ein Feedback zu bekommen.
gruss commander7
Beschreibung z.B. hier:
http://msdn.microsoft.com/library/de...ringArrays.asp
Gruß, Günter
@commander7
Habe kein Problem damit dir den source zu geben aber ich denke das du Ihn
nicht verstehen wirst den da hat ein c++ programmierer (das mache ich den ganzen tag) in delphi ein programm geschrieebn was schnel fertig werden soll. Werde aber versuchen dir es zu erklären.
Das mit dem VB oder delphi oder was für ein sprache ist eigendlich egal es änder sich nur die Dialektik nicht das Programm.
In dem Link oben ist ja ein vb programm wie man an der Stream kommt.
In dem Stream ist das bild schon in einem Array of byte also brauchst es nicht mehr wandeln.
Aufpassen im Stream sind die byte verdreht angeordnet. Das heist nicht RGB sondern BGR warum ich habe keine Ahnung.
Alle beschreibung hier gilt nur für 24 bit farbtife und rgb modus der Camera.
So sieht das Array nun aus:
1.Byte Wert für Blau 0 - 255
2.Byte Wert für Gelb 0 - 255
3.Byte Wert für Rot 0 - 255
...
und so weiter der Erste Punkt im Array of Byte ist Links oben sondern
Das ist der Code zum zeichnen das bildes.Code:Z:=0; For y:=239 downTo 0 Do Begin BmpRGB:=MyBitmap.ScanLine[y]; For x:=0 To 319 Do begin BmpRGB^.b:=Buffer[z]; BmpRGB^.g:=Buffer[z+1]; BmpRGB^.r:=Buffer[z+2]; Inc(BmpRGB); z := z + 3; end; end;
Hier habe ich schon ein bisschen mit pointer gespielt damit es schneller wird.
MyBitmap.ScanLine Ist Praktisch ein Array Of 3 Byte für eine Zeile.
Man könnte auch schreiben:
MyBitmap.Canvas. Ist pratisch die PictureBox ist mach das dann nur im speicher damit nach her bei anzeigen schneller geht.Code:Z:=0; For y:=239 downTo 0 Do Begin For x:=0 To 319 Do begin MyBitmap.Canvas.SetPixel(x,y):=RGB(Buffer[z],Buffer[z+1] Buffer[z+2]) z := z + 3; end; end;
An der Stelle mach ich jetzt mal schluss wenn du wieder fragst gibt mehr infos. Ich würde sage probiere erst mal folgendes aus dem Stream bilder holen und dann selbst in Picture box darstellen wenn das klappt machen wir die Übertragung.
Hast du die Kollisionserkennung hin bekommen Ihrgend wie will die bei mir nicht so bin zu langsam wie sieht den dein Robi aus (Schematischer auf bau) vielleicht können wir ja softwer zu sammen machen hats du die Links in mein Fusszeile schon an gesehen ?
Gruß
P: Meine Tochter (06.11.07) und https://www.carnine.de
M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken
hallo number5,
vielen dank für deine Mühe/Geduld. Ich glaube es ist nicht schlecht, wenn ich auch mal andere Sprachen lesen und Untersuchen muss. Schadet mir sicher nicht.
Ich probier nun mit deinen Anweisungen mit der Programmierung weiterzufahren. Habe aber übers Wochenende wenig Zeit, werde mich nächste Woche damit beschäftigen.
Danke auch für ev. weitere Fragen. Ich werde mich bei dir melden.
Ich habe mich wahrscheinlich bei meinem Beitrag oben etwas unpräzise Ausgedrückt. Die Kollisionserkennung realisiere ich im Moment nicht über die Analyse der Videobilder, ich will die mit US und Sharp Sensoren machen.
Ich hab mich auf deinen Links auch schon kurz umgesehen. Der Roboter den ich am bauen bin ist mein erster. Er ist ähnlich aufgebaut wie deiner (respektive wird es erst sein). Ich packe auf den Robby ein VIA EPIA mini-ITX Computer und ne Webcam. Über WLAN und den ITX kann ich nun auch den AVR ansprechen, der dann die Schrittmotor steuert. Nun will ich wie gesagt zur Kollisionserkennung um ihn auch autonom rumkurven zu lassen. Ist aber alles noch in einzelteilen, werde in meinen Ferien mit dem Zusammenbau beginnen.
werde mich wieder melden.
nochmal ein herzliches dankeschön
gruss commander7
Lesezeichen