' schrieb:Hätte ich mir fast denken können. Hab' ich mittlerweile auch so nachgelesen. Im von <<oenk>> verlinkten Dokument steht ja genau das als Quellcode drinnen, was abrissbirne machen will.
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);
if(err = NumericArrayResize(fD, 2L, (UHandle*)&Array, PixelX * PixelY))
goto release;
(*Array)->dimSizes[0] = PixelX;
(*Array)->dimSizes[1] = PixelY;
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++;
}
}
release:
MbufFree(ImageBuffer[PixelX][PixelY];
MdigFree(MilDigitizer);
MsysFree(MilSystem);
MappFree(MilApplication);
return err;
}