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++ 打开文件?的主要内容,如果未能解决你的问题,请参考以下文章

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

如何在 OSX 中使用 C++ opencv highgui 将活动窗口设置为 opencv 图像

android:如何将 int[] 转换为 OpenCV Mat c++?

如何在 Android Opencv c++ 中获取 abs Mat?

如何在适用于 Android 和 iOS 的 C++ 跨平台库中正确链接 OpenCV?

怎样在eclipse中加载opencv for android