Entwickler-Ecke
Sonstiges (Delphi) - Grafik-Programm stürzt unerklärlich ab..
J. S. aus R. - Do 07.07.05 14:12
Titel: Grafik-Programm stürzt unerklärlich ab..
Hi Leute,
Ich hab da ein mysteriöses Problem:
Ich bin gerade dabei ein Programm zu schreiben, welches eine Kamera (Video) über den Composite-Eingang ausließt.
Einfach: Das Kamera-Bild wird auf ein Panel "gecaptured". Das Bild soll dann über Screen-Shot auf ein Image gelegt werden, um es dann zu verarbeiten. Ziel ist eine "Echtzeit"-Kantenerkennung zu programieren.
Das funktioniert auch alles so weit...
Jedoch stürtzt das Programm nach unbestimmter Zeit (nach 3, 4, 5... Minuten) ab. Das komische dabei:
1. Keine Fehlermeldung von Delphi
2. Programm lässt sich nicht mit Delphi zurücksetzen
3. Auch der Task-Manager ist machtlos
(4.) ich habe den Eindruck, dass der Fehler erst später auftritt, wenn man das Programm nicht in Delphi laufen lässt
Zu bemerken:
- ich arbeite mit Bitmaps, Arrays, und Zeiger-Typen
- das Bild wird bei einem Timer-Event "gecaptured" (= von der Softwareschnittstelle ausgelesen)
- das Bild wird mittels ScanLine und laufendem Zeiger in ein 2D-Array in Graustufen (Byte) geschrieben
(Array ist so groß, wie Bilddimensionen in Pixel)
- ich kann fast sicher ausschließen, dass der Zeiger auf einen ungültigen Bereich zeigt
Ich weiß nicht, wo der Fehler liegen könnte!
Mit einem anderen Bild-Verarbeitungs-Algorythmus hats ja noch geklappt.
Weiß jemand woran das liegen könnte? Ich kann doch nicht der erste sein, der so ein Problem hat.
Ich wäre für jeden Hinweis dankbar ______ J. S. aus R.
raziel - Do 07.07.05 14:31
Hallo,
Bitte ändere den Titel des Topics da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Delphi-Forum.de Richtlinien:
| Richtlinien: |
1.2 Beiträge
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...] |
Einfach oben bei deinem ersten Beitrag auf "Edit" klicken und den Titel ändern. Dank Dir!
Gruß,
raziel
[meta]mpdsewk[/meta]
BenBE - Fr 08.07.05 12:28
Etwas Souce macht die Fragestellung sicherlich wesentlich würziger und nicht ganz so trocken. Ich musste nämlich leider gestern meine Glaskugel wiedereinmal zur Reperatur bringen.
DaRkFiRe - Sa 09.07.05 05:03
Meine hat gerade die Abart, zu durchsichtig zu sein. Hab gestern bei eBay eine Werkstatt gesehen, die Glaskugeln zu 60% weniger Kosten als die UVP vom Hersteller wieder reparieren kann.
Regal.
Ich tippe auf Treiber zur Einleseschnittstelle. Vielleicht zuviele Requests an den Capture-Treiber!?
Kuscheltiermassaker - Mo 11.07.05 10:09
@J. S. aus R.
ich versuche mich gerade an etwas ähnlichem, komme da aber nicht so richtig weiter. darf ich erfahren, wie hoch deine bildrate (bei der kantenerkennung) ist?
J. S. aus R. - Di 12.07.05 07:47
@Kuscheltiermassaker
Also die Bildrate kommt bei mir bis auf 9 - 13 fps.
Das ist möglich, weil der Algorithmus (für die Kantenerkennung) noch recht simpel ist.
patrick - Di 12.07.05 08:27
schön, das du 75% der post ignoriert hast :twisted:
ohne quelltext wird dir keiner wirklich weiterhelfen können.
und ins blaue raten ist unsinn. :?
aber wirf doch mal einen blick in den taskmanager und schau dir den speicherverbrauch und die anzahl der threads an. vielleicht gibtst du irgendwo etwas nicht frei. :wink:
gruß
arj - Mi 13.07.05 08:04
patrick hat folgendes geschrieben: |
schön, das du 75% der post ignoriert hast :twisted:
ohne quelltext wird dir keiner wirklich weiterhelfen können.
und ins blaue raten ist unsinn. :? |
Bin seiner Meinung.
Trotzdem:
Schau mal, ob du den Timer vielleicht mit einem zu niedrigen Intervall eingestellt hattest.
Wenn du in deiner Timerverarbeitung länger brauchst, als der Timer bis zum nächsten Aufruf, dann könnte
das Probleme geben.
J. S. aus R. - Fr 22.07.05 08:00
Hi Leute,
Danke, dass ihr mir so gerne helfen möchtet. Das Problem hat sich inzwischen gelöst.
Sorry: Ich konnte keinen Source posten, da ich auf einem anderen PC entwickle, als mit dem an dem ich grad sitze.
Trotzdem Danke! J. S. aus R.
HeuteEinKoenig - Do 04.08.05 13:29
Du musst bei solchen "Echtzeitbildern" immer schön darauf achten, dass Du den verwendeten Speicher auch brav immer wieder freigibst.
Mache selbst viel mit LiveVideoBildern und weiß daher um die Sorgen mit Delphi. Vor allem mußt Du Obacht geben,
daß Du keinesfalls ein neues Frame aufnimmst, wärend Du das alte noch ob Deiner Kantenerkennung scannst.
Also kopierst Du am besten den gerade zu scannenden Frame in einen Arbeitsbereich und vergisst auch danach nicht
den wieder freizugeben.
Viel Erfolg
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!