我已经实现了一个实现CvCameraListener接口的Android应用程序。在onCameraFrame(Mat inputFrame)方法中,我处理来自摄像头的捕获的inputFrame。 现在我的问题:有没有办法可以将手机上保存的视频文件用作输入,而不是直接从相机获取帧?这意味着我希望以Mat格式逐帧输入视频文件。
有可能这样做吗?
感谢您的回答
答案 0 :(得分:1)
虽然没有经过测试,但我在Android上的OpenCV方面没有多少经验。不过,你可以尝试这样:
//[FD : File descriptor or path.]
Bitmap myBitmapFrame;
MediaMetadataRetriever video_retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(FD);
myBitmapFrame = retriever.getFrameAtTime(..);
}
catch(...
:
Utils.bitmapToMat(myBitmapFrame, myCVMat);
您可能必须实现一些回调系统,因为初始化后只能使用OpenCV。此外,您可以将帧编号转换为时间码。
祝你好运,快乐的编码。 :)