我已经实现了一个实现了 CvCameraListener 接口(interface)的安卓应用。在 onCameraFrame(Mat inputFrame) 方法中,我处理从相机捕获的 inputFrame。 现在我的问题是:有没有一种方法可以使用手机上保存的视频文件作为输入,而不是直接从相机获取帧?这意味着我想以 Mat 格式逐帧输入视频文件。
有没有办法做到这一点?
感谢您的回答
最佳答案
虽然它没有经过测试,而且我在 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。此外,您还可以将帧数转换为时间码。
祝你好运,编码愉快。 :)
关于android - 将视频保存为输入而不是 android 中的相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25227561/