OpenCV2.1 的 ffmpeg 似乎编译有问题,不能正常进行视频读写方面的操作,因此尝试调用 Matlab 来完成,不过也还没成功,详细记录如下:
1、在 Matlab 中通过 mex –setup 和 mbuild –setup 指定 VS2008 SP1 作为 C 编译器。
2、编写保存视频的 fun_saveVideo.m 文件如下:
3、使用如下指令将 fun_saveVideo.m 编译为 动态链接库 供 VC 调用:
4、将生成的 libSaveVideo.h, libSaveVideo.lib, libSaveVideo.dll 三个文件复制到项目文件夹下,其中 lib 和 dll 文件复制到 debug 和 release 子文件夹内。
5、在 VS 界面 " /Tools / Options / Projects and Solutions / VC++ Directories" 中,在 " Include files " 和 " Library files " 中分别添加下列目录(默认安装位置):
6、在项目属性" /Project / Properties / Configuration Properties / Linker / Input " 中添加 mclmcrrt.lib, libmx.lib, libmat.lib, mclmcr.lib 。
7、在项目的 Solution Explorer 的 Header Files 中添加 libSaveVideo.h ,在该文件的最下面可以看到函数的声明:
8、在 ******(项目名称).h 中加入如下代码(如果不加 ‘#pragma comment(lib,’”libSaveVideo”)’,则编译链接时会出现错误“error LNK2019: unresolved external symbol”):
9、函数调用的具体代码:
10、编译链接都通过,但实际运行时出错,可能是 m 文件编写不合理 或其它原因,有待进一步分析。

本文记录了在OpenCV2.1中由于ffmpeg问题,尝试使用Matlab进行视频保存的过程。首先在Matlab中配置VS2008 SP1作为C编译器,然后编写并编译m文件`fun_saveVideo.m`为动态链接库。接着将生成的头文件、库文件和dll文件放入项目目录,并在Visual Studio中设置相应路径和链接库。最后在项目中引入头文件并实现函数调用。
最低0.47元/天 解锁文章
8915

被折叠的 条评论
为什么被折叠?



