一、安装补丁VS2010MEXSupport.zip

    由于MATLAB R2010a 发布的时间要比 VS2010早,所以在该版本识别不了VC++2010编译器。不过R2010a之后的版本应该不会有这种问题了。

unzip( path_to_zip_file, matlabroot);

http://www.mathworks.cn/support/solutions/en/data/1-D5W493/index.html?solution=1-D5W493

解压补丁包,将其中的文件放到 D:\Program Files\MATLAB\R2010a\bin\win32\mexopts 文件夹下

二、Piotr's Image & Video Matlab Toolbox 安装使用

    Piotr's Image & Video Matlab Toolbox是加州大学圣迭戈分校视觉实验室提供的matlab工具箱,提供了非常好的代码,在工程试验中很实用。具体情况,参见主页:http://vision.ucsd.edu/~pdollar/toolbox/doc/

    在主页中提供了安装方式。但是在实际的安装过程中,出现了很多情况。

    a. 每次使用时必须重新添加工具箱。

    b. error C2371: 'char16_t' : redefinition; different basic types  

—————————————————————————————————————————————————

C:\Microsoft Visual Studio 10.0\VC\INCLUDE\yvals.h(576) : error C2371: 'char16_t' : redefinition; different basic types
C:\Matlab\r2010a\extern\include\matrix.h(330) : see declaration of 'char16_t'

—————————————————————————————————————————————————

原因是VS2010中的yvals.h添加了char16_t的定义,而Matlab的matrix.h也包含对char16_t的定义,所以同时包含这两个头文件的话,会导致重复定义char16_t的错误。

解决方案:

在包含matrix.h之前包含yvals.h。例如:

#include <yvals.h>
#if (_MSC_VER >= 1600)
#define __STDC_UTF_16__
#endif