Android:如何使用 OpenCV C++ 打开文件?

Posted

技术标签:

【中文标题】Android:如何使用 OpenCV C++ 打开文件?【英文标题】:Android : How can I open a file using OpenCV C++ ? 【发布时间】:2017-05-11 11:59:17 【问题描述】:

我的 android 设备上保存了一个视频文件。

使用getPath() 函数我得到了“sdcard/video_app/sample_video.mp4”。

我现在正尝试在我的 OpenCV C++ 代码(我正在使用 NDK 和 JNI)中使用这个视频文件:

String filename = "sdcard/video_app/sample_video.mp4";

VideoCapture capture(filename);

Mat img;

capture >> img;

imwrite("sdcard/video_app/test.jpg", img);

我补充说:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

什么都没有发生。我究竟做错了什么 ?

【问题讨论】:

opencv 仅支持 avi 容器中的 MJPG 编解码器 我已经用 avi 容器中的 MJPEG 视频尝试了这段代码,但仍然无法正常工作。 【参考方案1】:

你可以试试,

VideoCapture capture=new VideoCapture();
capture.open("sdcard/video_app/sample_video.mp4");
Mat frames = new Mat();

 // to read each frame and to save in Mat class           
for(;;)

   capture.read(frames); 
   imwrite("sdcard/video_app/test.jpg",frame);

【讨论】:

以上是关于Android:如何使用 OpenCV C++ 打开文件?的主要内容,如果未能解决你的问题,请参考以下文章