在Android上的OpenCV中逐帧处理视频
我的目标如下: 我必须读入存储在sd卡上的视频,逐帧处理,然后再次将其存储在sd卡上的新文件中。问题在于OpenCV4Android没有视频编码器/解码器,因为它不包含ffmpeg。此外,使用JavaCV处理图像对我来说是没有选择的,因为代码已经用原生OpenCV编写,我通过JNI访问它们。我在这里读了很多关于stackoverflow和Google的其他内容。但我没有找到解决办法在Android上的OpenCV中逐帧处理视频,android,opencv,video,Android,Opencv,Video,我的目标如下: 我必须读入存储在sd卡上的视频,逐帧处理,然后再次将其存储在sd卡上的新文件中。问题在于OpenCV4Android没有视频编码器/解码器,因为它不包含ffmpeg。此外,使用JavaCV处理图像对我来说是没有选择的,因为代码已经用原生OpenCV编写,我通过JNI访问它们。我在这里读了很多关于stackoverflow和Google的其他内容。但我没有找到解决办法 JavaCV允许我逐帧读取视频,也可以逐帧存储。但是,我无法将视频转换为普通的OpenCV Mat对象,这些对象可
希望我能解释一切。您可以使用
VideoCapture
在OpenCV中打开一个视频文件,然后使用grab
获得下一帧
您是否需要支持特定的视频编解码器
是的,我找到了一个解决办法。即使是额外的开销,对我的研究项目来说也足够了 该解决方案涵盖了OpenCV 4 Android和JavaCV的使用。我首先使用JavaCV逐个读取一个帧。之后,我将此帧转换为OpenCV使用的格式,并处理该帧。最后,我要么直接在屏幕上显示处理过的帧,要么将其转换回JavaCV并存储在新文件中。下面是不同使用的帧格式的详细解决方案
嗨,维翁。我只是想问你是否找到了解决办法?我现在面临着几乎相同的问题…是的,我找到了解决方案(见下文)。谢谢分享,@Vion!我得到的第一个解决方案。但这在某种程度上不是太昂贵了吗?@Vion您的解决方案中有一些公共代码吗?这对我将是一个很大的帮助。