Access Violation bzw. SIGSEV bei OpenCV

Rund um die LCL und andere Komponenten
Antworten
ErnstVolker
Beiträge: 326
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Access Violation bzw. SIGSEV bei OpenCV

Beitrag von ErnstVolker »

Guten Tag liebe Forumsmitglieder,

ich habe mit Lazarus & OpenCV eine 64 bit Anwendung geschrieben die funktioniert. Jetzt bin ich auf die Idee gekommen, die Anwendung auch für 32 bit bauen zu wollen. Das hat auch funktioniert, aber während des
Programmlaufes tut sich folgender Fehler auf:

Beim Start durch Doppelklick auf die Exe wird nach dem Laden des Bildes die Meldung: "Acces violation. Press OK to ignore and risk data corruption. Press Abort to kill the programm." ausgeworfen.

Ein Programmstart über F9 aus der IDE heraus liefert: Projekt Entzerrung_32 hat Exception-Klasse External: SIGSEGV ausgelöst."

Es kommt der Hinweis auf die unit in der das passiert ist: ocv.core_c.pas in Zeile 2533. Das ist innerhalb einer function mit Namen cvGetSize, die ich auch aufrufe.

Jetzt muß ich dazusagen, dass ich die 64 bit-Variante mit deraktuellen trunk von Lazarus (2.1.0) und FPC (3.3.1) erstellt habe. Die funktioniert ja auch. Dann bin ich auf die Idee gekommen Lazarus in der aktuellen Stable 2.0.4 für win32 zu installieren. Auch brav den Haken bei sinngemäß: "Zweitinstallation" gesetzt.
Um das Projekt zu migrieren habe ich einfach mal alles vom 64 bit Projekt in einen andern Ordner kopiert und die Projektdateien *.lpi, *.lpr, *.lps und *.res gelöscht. Dann ein neues Projekt gestartet, die entsprechenden Units hinzugefügt und die
neuen "leeren" Projekt-Units gelöscht.

Das hat soweit alles Funktioniert. Das Programm compilliert und startet auch. Nur während der Programmausführung schmiert es mit den oben genannten Fehlermeldung ab.

Die OpenCV-Units für Lazarus hatte ich mir hier: https://forum.lazarus.freepascal.org/in ... ic=31851.0 aus dem Link des letzten Beitrags von "Edson" besorgt und dann natürlich die zugehörige opencv-version 2.4.13.

Kennt jemand das oder ein ähnlich geartetes Problem? Wo muß ich suchen gehen?

Vielen Dank und viele Grüße

Volker

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Access Violation bzw. SIGSEV bei OpenCV

Beitrag von six1 »

Hi,
könnte es sein, dass 64 Bit dll's von OpenCV in einem Suchpfad von Windows abgelegt sind?
OpenCV ist ein riesen Ding... ich habe da auch schon sehr viel Zeit investiert... Probleme kann man da ohne Ende finden :mrgreen:
Gruß, Michael

ErnstVolker
Beiträge: 326
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Access Violation bzw. SIGSEV bei OpenCV

Beitrag von ErnstVolker »

Ich hab' die 32 bit Variante auf Eis gelegt. Eigentlich habe ich die benötigten DLL's immer mit im Ordner der Exe. In dem OpenCV-Paket sind ja 32 bit und 64 bit DLL's enthalten.
Der Anteil an OpenCV ist an meinem Projekt gering. Ich mache lediglich eine Monobildentzerrung und benötige sowas wie "PerspectiveTransform", "warpPerspective", "imshow".

Hat sich von Euch schon mal jemand mit Bildentzerrung beschäftigt? Ich hätte da nämlich noch ein Problem...

Gruß

Volker

Antworten