我需要从存储在我的 Android 设备(在本例中是我的模拟器)的 sd 卡中的视频中逐帧捕获。我正在通过 NDK 使用 Android 和 OpenCV。我通过 DDBS (eclipse) 的文件资源管理器手动推送了 sdcard 中的文件“SinglePerson.avi”,并使用以下代码读取文件:
JNIEXPORT void JNICALL Java_org_opencv_samples_tutorial4_Sample4Mixed_VideoProcessing(JNIEnv*, jobject)
{
LOGI("INSIDE VideoProcessing ");
CvCapture* capture = cvCaptureFromAVI("/mnt/sdcard/SinglePerson.avi");
IplImage* img = 0;
if(!cvGrabFrame(capture)){ // capture a frame
LOGI("Inside the if");
printf("Could not grab a frame\n\7");
exit(0);
}
img=cvRetrieveFrame(capture);// retrieve the captured frame
cvReleaseCapture(&capture);
}
问题是 cvGrabFrame(capture) 结果总是错误的。有什么建议可以正确打开视频并抓取帧吗?提前致谢