Zum Inhalt springen

Pixela auslesen


schmiddys

Empfohlene Beiträge

Hallo!

Ich hab mir über das SDK eines Herstellers ein Bild(Schnappschuss) von einer Kamera erzeugt, es aber nicht abgespeichert. Nun wollte ich von euch wissen, wie kann ich mir aus diesem Bild die Pixel auslesen lassen. Das Bild ist schwarz-weiß.

Ich benutze Visual Studio 2005. Wäre super, wenn ihr mir einige Tipps geben könntet.

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Format ist ein bitmap.

Kannst du mir eventuell nen beispielcode dafür geben?

Wäre super.

Kann auch mal meinen Quellcode reinstellen.

//Buffer initialisieren

void InitUserBuffer( CyUserBuffer &userBuffer, CSpyder3GigEInterface *camera )

{

unsigned long width=0;

unsigned long height=0;

unsigned long pixelWidth =0;

camera->GetSizeX(width);

camera->GetSizeY(height);

camera->GetPixelByteSize(pixelWidth);

long bufferSize = width*height*pixelWidth;

userBuffer.SetBuffer( new unsigned char[bufferSize], bufferSize);

}

void main()

{

CCameraConnection camCon;

// Connect

printf("Verbinden...\n");

if ( camCon.Connect() )

{

CSpyder3GigEInterface *camera = camCon.GetCamera();

camCon.LoadXMLFile("\\Config.xml");

// Set up Camera

camera->SetExposureMode(2);// sem 2 - control line rate and exposure time

// through software

camera->SetLineRate(16878.0F); // Zeilenfrequenz auf 16878Hz

camera->SetSizeY(1000); // Anzahl der Zeilen 1000

camera->SetExposureTime(500.0F); // Belichtungszeit auf 500 uS

camera->SetPixelType( CyGrayscale8::ID); // 8 bit

//Allocate Buffer

CyUserBuffer userBuffer(NULL, 0);

InitUserBuffer( userBuffer,camera);

// Get Grabber

CyGrabber &grabber = camera->GetGrabber();

// Eigenschaften des Eingabefensters

unsigned long width=0;

unsigned long height=0;

CyDisplayEx display;

camera->GetSizeX(width);

camera->GetSizeY(height);

display.Open( NULL, 20, 20, (unsigned short)width/2, (unsigned short)height/2 );

time_t curTime, lastTime =0;

printf("Press any key to Quit\n");

while ( _kbhit() == 0)

{

time( &curTime );

// Snap an image and display every 5 seconds

if ( curTime > lastTime + 50000 )

{

// Snap an image - Wait for it

if ( grabber.Grab( CyChannel(0), userBuffer, 0)== CY_RESULT_OK )

{

display.Display( userBuffer.GetBuffer(), userBuffer.GetBufferSize(),

(unsigned short)width, (unsigned short)height,

CyGrayscale8::ID );

}

}

display.PumpGUIMessage();

}

// Speicherplatz für den Buffer wieder frei geben

delete [] userBuffer.GetBuffer();

camCon.Disconnect();

}

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Format ist ein bitmap.

"Bitmap" kann alles mögliche sein. Dieser Begriff hat mit dem Format der Daten nichts zu tun.

Da du ja offenbar ein API für diese Kamera hast, schau doch einfach mal in die Dokumentation, da sollte drin stehen, in welchem Format die Daten bereitgestellt werden.

Das hatte ich dir übrigens auch in deinem ersten Thread geraten. Und da geht's jetzt bitte auch weiter.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gast
Dieses Thema wurde nun für weitere Antworten gesperrt.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...