Odczyt obrazu z pamięci

0

Witam,
Proszę o pomoc w rozwiązaniu problemu odczytu obrazu z pamięci. Porcję danych, (prawdopodobnie w postaci pliku jpeg ), odczytuje z aparatu cyfrowego, adres przechowuję w wskaźniku: void ImageData *. Znam wysokość i szerokość obrazu oraz jego długość. Moje pytanie brzmi: jak mogę zamienić ten obszar pamięci na plik graficzny, który będę mógł wyświetlić w okienku openCV?

Pozdrawiam

0

Podaje kod źródłowy, aby lepiej wyjaśnić o co mi chodzi. Powyższy problem rozwiązałem tak:

 
	
	pFile = fopen ( "C://Users/More/Desktop/myfile.txt" , "wb" ); 
	fwrite ( ImageData, 1, len, pFile );    // zapisuje do pliku porcję danych pod adresem 'ImageData' i długości 'len'
	fclose (pFile);

	frame = cvLoadImage("C://Users/More/Desktop/myfile.txt");     //odczyt '.txt' jako obraz
	cvShowImage( "Example1", frame );    // //wyswietla .jpg//
	cvWaitKey(2);

Jak widać rozwiązanie nie jest zbyt efektowne ( pomimo iż działa perfect ). Całość jest w pętli, obecnie uzyskuję 9 fpsów.Chciałbym zwiększyć ich liczbę, pomijając zbędny zapis i odczyt ale nie potrafię odszukać funkcji adekwatnej do cvLoadImage(), ale operującej na pamięci-nie pliku.

0

Użyj tego:
http://msdn.microsoft.com/en-us/library/aa365150%28v=vs.85%29.aspx
cały "plik" będzie w pamięci.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.