INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

LabVIEW: Absturz nach externem Code-Aufruf



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

11.09.2007, 16:14
Beitrag #21

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.696
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
LabVIEW: Absturz nach externem Code-Aufruf
' schrieb:Nur leider hat das Bild nix mit dem von der Thermokamera aufgenommenen gleich.
Kann es sein, dass du in der verschachtelten For-Schleife cols und rows tauschen musst?

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.09.2007, 16:29
Beitrag #22

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
LabVIEW: Absturz nach externem Code-Aufruf
' schrieb:Kann es sein, dass du in der verschachtelten For-Schleife cols und rows tauschen musst?

Das dachte ich auch schon, aber das ist leider nicht der Fehler.

Ich habe noch diesen Code in mein Skript eingebaut, um mir das gegrabbte Image als Bitmap zu speichern.

MbufExport(Puffer, M_BMP, ImageBuffer[PixelX][PixelY]);

Dadurch erhalte ich folgendes Bitmap

Und das ist genau 320x256 Pixel groß und die Darstellung die ich auch in meinem Graphen bräuchte.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.09.2007, 07:18 (Dieser Beitrag wurde zuletzt bearbeitet: 14.09.2007 07:26 von rolfk.)
Beitrag #23

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
LabVIEW: Absturz nach externem Code-Aufruf
' schrieb:Als erstes möchte ich mich bei euch für eure Unterstützung danken. Ich bin ein kleines Stückchen weitergekommen und ohne eure Anregungen, hätte es entweder noch lange gedauert, oder aber ich hätte irgendwann aufgegeben. Hab nun ein Skript, dass mir Daten von der Kamera in einen Puffer speichert. LabVIEW bekommt mittels eines Pointers Wert für Wert übertragen. Das ganze Funktioniert auch und ich bekomme in meinem Intensitätsgraphen ein Image. Nur leider hat das Bild nix mit dem von der Thermokamera aufgenommenen gleich. Zum besseren Verständnis hab ich mal ein Screenshot hochgeladen und den Quellcode gibts jetzt:

#include "extcode.h"
#include <windowsh>
#include <mil.h>

#define PixelX 320
#define PixelY 256

typedef struct{
int32 dimSizes[2];
float64 Numerisch[1];
} TD1;

typedef TD1 **TD1Hdl;

typedef char *STRING;

extern "C" MgErr CINRun(TD1Hdl Array);

MgErr CINRun(TD1Hdl Array)
{
MgErr = noErr;
STRING DCF_File = "D:\Dokumente...";

Mil_ID
MilApplication = M_NULL,
MilSystem = M_NULL,
MilDigitizer = M_NULL,
ImagBuffer[PixelX][PixelY];

float64 *ptrResultElement;
int cols, rows;

MilApplication = MappAlloc(M_DEFAULT, M_NULL);
MilSystem = MsysAlloc(M_SYSTEM_SOLIOS, M_DEFAULT, M_COMPLETE, M_NULL);
MilDigitizer = MdigAlloc(MilSystem, M_DEFAULT, DCF_File, M_DEFAULT, M_NULL);
ImageBuffer[PixelX][PixelY] = MbufAlloc2d(MilSystem, PixelX, PixelY, M_UNSIGNED+16, M_IMAGE + M_DISP + M_GRAB + M_PROC, M_NULL);

Also ist das C++ oder was?

ImageBuffer = MbufAlloc2d(MilSystem, PixelX, PixelY, M_UNSIGNED+16, M_IMAGE + M_DISP + M_GRAB + M_PROC, M_NULL);

schiene mir wesentlich logischer. Aber da ich die Definition der Funktion und wie die ganzen Datentypen da deklariert sind nicht kenne kann ich da gar nichts sagen. Die Deklaration von Mil_ID und Mil.... ist schon sehr komisch.

Zitat:if(err = NumericArrayResize(fD, 2L, (UHandle*)&Array, PixelX * PixelY))
goto release;

(*Array)->dimSizes[0] = PixelX;
(*Array)->dimSizes[1] = PixelY;

Ist zwar nicht wirklich falsch aber ich stelle diese Arraygrösseninitialisiering immer nach dem eigentlichen Einfüllen der Daten.

Zitat:ptrResultElement = (*Array)->Numerisch;

if(MappGetError(M_GLOBAL, M_NULL))
goto release;

MdigGrab(MilDigitizer, ImageBuffer[PixelX][PixelY]);
if(MappGetError(M_GLOBAL, M_NULL))
goto release;

for(cols = 0; cols < PixelY; cols++)
{
*ptrResultElement = 0;
for(rows = 0; rows < PixelX; rows++)
{
*ptrResultElement = ImageBuffer[rows][cols];
ptrElementResult++;
}
}

Wo kommt den nun dieser ptrElementResult wieder her? Ich sehe das nirgends deklariert und das dürfte dann ja wohl einen Compilierfehler geben. Auch das *ptrResultElement = 0; ist völlig überflüssig.

Und wenn ich mir das Bild anschaue würde ich mal den Bereich der Intensitätsrampe anpassen. Der Signalverlauf gibt eindeutig an dass da Werte von 2E+9 drin sind aber Deine Rampe geht nur bis 100. Und wie die float64 Werte effektiv in Graustufen zu verwandeln sind ist auch noch experimentel auszuprobieren. Der Intensitätsgrpah ist da wohl nicht gerade die ideale Ausgabekomponente.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Absturz durch unzulässige Pointer VS_03 3 10.310 28.10.2016 18:32
Letzter Beitrag: VS_03
  Labview blockiert serielle Schnittstelle nach Aufruf der DLL Berdschi 5 8.219 24.04.2014 08:38
Letzter Beitrag: Berdschi
  Fehler beim Schließen des VIs nach Delphi-DLL-Aufruf Bärbel 10 14.274 11.11.2013 11:44
Letzter Beitrag: andreaskoller
  Labview-Code in Visual Studio GladiatoreSardo 1 5.665 12.11.2012 10:41
Letzter Beitrag: GerdW
  Absturz von Labview nach schliessen eines VIs sima 4 7.889 23.01.2012 17:07
Letzter Beitrag: sima
  Absturz und fehler bei aufrufen einer externen dll Georg26 3 6.514 18.07.2011 09:45
Letzter Beitrag: Georg26

Gehe zu: