前言
mexopenCV是一个十分实用的matlab工具箱,为matlab提供了openCV大部分的函数,用户可以在matlab中调用编译好的函数。详细介绍可以参考mexopencv官网。
准备
matlab2014b(其他版本也可以)
openCV2.4.9(本文以此版本为例子,本文假设读者成功安装openCV)
mexopencv(这个需要对应openCV的版本,本文是2.4版本)这个是2.4版本的下载地址
ps:VS2013(作为编译工具)
设置编译器
>>mex -setup
将编译器选择为VS2013,其他版本也可以。我的编译器默认为VS2013,具体原因不明。
设置路径
将下载到的mexopencv解压在E盘的根目录,得到E:/mexopencvmaster/...这个路径,展开后得到如下文件夹和文件
在matlab中输入如下代码
>>pathtool
留意左边的选项,选中“添加并包含子文件夹”,添加刚才解压的那个路径,例如“E:/mexopencvmaster/”。
编译openCV
在matlab输入:
>>mexopencv.make('opencv_path', 'E:\OpenCV\build')
以上路径需要根据自己opencv的实际安装路径填写。然后会经过一段比较长的时间进行编译。
测试
将matlab当前的工作路径选择为"./mexopencvmaster/"
>>addpath('utils');
>>MDoc;
还可以运行test路径下的UnitTest类生成的测试函数,结果出现了“PASS”证明成功。
>>addpath('test');
>>UnitTest;
简单运用
>> addpath('E:\mexopencvmaster');
>> im = imread('Lena.jpg');
>> kern = [0 -1 0;-1 5 -1;0 -1 0];
>> result = cv.filter2D(im, kern);
>> subplot(1,2,1);imshow(im);title('原始图像');
>> subplot(1,2,2);imshow(result);title('卷积图像');
结果如下:
注意:使用前需要添加mexopencv的路径到matlab路径中。