Autor Beitrag
J. S. aus R.
Hält's aus hier
Beiträge: 8

Win XP Home
D6 en.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: 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
BeitragVerfasst: 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. Threadstarter
Hält's aus hier
Beiträge: 8

Win XP Home
D6 en.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1481

WIN2k, WIN XP
D6 Personal, D2005 PE
BeitragVerfasst: 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ß

_________________
Patrick
im zweifelsfall immer das richtige tun!!!
arj
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
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
BeitragVerfasst: Mi 13.07.05 08:04 
user profile iconpatrick 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. Threadstarter
Hält's aus hier
Beiträge: 8

Win XP Home
D6 en.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 31

Windows 2K XP

BeitragVerfasst: 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