C/C++与Matlab混合编程

由于实验室项目遗留问题,可能为了图matlab绘图方便,前面的开发人员在C++核心代码外加了一层matlab外壳,在matlab里调用C++方法,并使用matlab绘图显示。当我接手这份代码之后,在Windows上调试发现了几个难以忍受的问题,
1. matlab调用之前必须将c++代码编译成二进制文件,如此一来在matlab里就没法调试,不得不使用Visual Studio的附加进程调试,需要频繁来回切换VS和maltab;
2. 使用附加进程调试时如果C++程序崩溃,导致matlab必须重启,而matlab重启速度之慢无法忍;
3. 全速运行起来速度之慢无法忍。

综上所述,决定将代码全部移植到C++下。综合考虑,移植到C++下,可能存在以下两个问题:图像读取与转换和计算结果可视化

图像加载与转换

项目是有关图像处理的,matlab提供非常便捷的图像转换和处理库,在C++下没有这些API,也不可能自己从头实现这些基础功能,自然而然选择了OpenCV这样的第三方库。

  1. 下载OpenCV2.4.9 for Windows,解压到OPENCV_ROOT(自定义路径);
  2. 在VS2012里指定头文件路径为:OPENCV_ROOT/build/include;库文件路径:OPENCV_ROOT/build/x64/vc11/lib
  3. OPENCV_ROOT/build/x64/vc11/bin拷贝opencv_core249d.dll,opencv_core249.dll,opencv_highgui249d.dllopencv_highgui249.dll到VS工程目录(工程为x64,x86工程);
  4. 在代码中添加如下代码表明用到的库文件

     #ifdef _DUBUG
        #pragma comment(lib, "opencv_core249d.lib")
        #pragma comment(lib, "opencv_highgui249d.lib")
     #else
        #pragma comment(lib, "opencv_core249.lib")
        #pragma comment(lib, "opencv_highgui249.lib")
     #endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值