Autor Wątek: OpenCV & AVI - Access violation reading location  (Przeczytany 903 razy)

Offline C'mons

  • Użytkownik

# Listopad 05, 2011, 21:06:09
Używam prostego kodu zaczerpniętego z kursu, do wczytania pliku AVI (MPEG-4) niestety w momencie wywołania funkcji cvCaptureFromAVI, wyskakuje błąd

Unhandled exception at 0x00905a4d in ocv.exe: 0xC0000005: Access violation reading location 0x00905a4d.
#include <cv.hpp>
#include <highgui.h>

void main()
{
// odczytanie pliku avi
CvCapture* vid = cvCaptureFromAVI("I:/sample.avi");
 
if ( vid == NULL )
{
system("PAUSE");
}

// tworzymy okno wyswietlajace obraz
cvNamedWindow("plik wideo", 0);
 
// odczytanie pierwszej klatki - niezbedne do prawidlowego odczytania wlasciwosci pliku
// przy uzyciu funkcji cvGetCaptureProperty
cvQueryFrame(vid);
 
// odczytujemy z wlasciwosci pliku liczbe klatek na sekunde
double fps =  cvGetCaptureProperty(vid, CV_CAP_PROP_FPS);
 
// wyliczamy czas potrzebny do odtwarzania pliku z prawidlowa prędkoscia
double odstep_miedzy_klatkami = 1000 / fps;

while (true)
{
// pobranie kolejnej ramki
IplImage* ramka = cvQueryFrame(vid);
 
// jezeli nie jest pusta to wyswietlamy
if (ramka != 0)
cvShowImage("plik wideo", ramka);
else
break;
 
// czekamy przez okreslony czas
int c = cvWaitKey(odstep_miedzy_klatkami);
 
// jezeli nacisnieto klawisz 'k', konczymy wyswietlanie
if (c == 'k') break;
}
 
// zwolnienie zasobów
cvDestroyAllWindows();
cvReleaseCapture(&vid);
}

Skąd takie cuda? Ma ktoś jakiś pomysł?

film jest tutaj:
http://www7.zippyshare.com/v/61952832/file.html
« Ostatnia zmiana: Listopad 05, 2011, 21:08:19 wysłana przez C'mons »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych