| Autor |
Beitrag |
J. S. aus R.
Hält's aus hier
Beiträge: 8
Win XP Home
D6 en.
|
Verfasst: Do 07.07.05 14:12
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.
Zuletzt bearbeitet von J. S. aus R. am Di 12.07.05 07:41, insgesamt 1-mal bearbeitet
|
|
raziel
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: 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]
_________________ JSXGraph
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: 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.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
DaRkFiRe
      
Beiträge: 526
WinXP Home & Professional
C, C++, Delphi
|
Verfasst: 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!?
_________________ Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
|
|
Kuscheltiermassaker
Hält's aus hier
Beiträge: 5
win XP, win 2000
D4 Standard
|
Verfasst: 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. 
Hält's aus hier
Beiträge: 8
Win XP Home
D6 en.
|
Verfasst: 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
      
Beiträge: 1481
WIN2k, WIN XP
D6 Personal, D2005 PE
|
Verfasst: Di 12.07.05 08:27
schön, das du 75% der post ignoriert hast
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.
gruß
_________________ Patrick
im zweifelsfall immer das richtige tun!!!
|
|
arj
      
Beiträge: 378
Win XP/Vista, Debian, (K)Ubuntu
Delphi 5 Prof, Delphi 7 Prof, C# (#Develop, VS 2005), Java (Eclipse), C++, QT, PHP, Python
|
Verfasst: Mi 13.07.05 08:04
patrick hat folgendes geschrieben: | schön, das du 75% der post ignoriert hast
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. 
Hält's aus hier
Beiträge: 8
Win XP Home
D6 en.
|
Verfasst: 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
      
Beiträge: 31
Windows 2K XP
|
Verfasst: 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
|
|