【立体匹配】C++调用Python3.6的配置

C++调用Python3.6的配置

      • visual studio环境配置
      • QT环境配置
      • 其他坑

在用C++做立体匹配算法的时候,需要查看一些算法中间数据,如Matching Curve,由于Python在进行数据处理显示的时候非常方便,于是想用C++来调用Python的matplotlib进行数据显示。
我用的是visual studio 2017 + Python3.6,Python用的是Anaconda。

visual studio环境配置

在VS中新建一个C++控制台程序,配置相关的项目属性(注意是64位工程)
项目 -> 属性 -> C/C++ -> 常规 -> 附件包含目录(根据实际情况来定,我的是"D:\Anaconda3\include")
【立体匹配】C++调用Python3.6的配置_第1张图片
项目 -> 属性 -> 连接器 -> 常规 -> 附加库目录(我的是"D:\Anaconda3\libs")
【立体匹配】C++调用Python3.6的配置_第2张图片
项目 -> 属性 -> 连接器 -> 输入 -> 附加依赖项
【立体匹配】C++调用Python3.6的配置_第3张图片

QT环境配置

matplotlib画图实际上是调用了QT,因此需要配置QT的运行环境(不需要下载安装QT),否则会报

This application failed to start because it could not find or load the QT platform plugin "windows" in ""

解决办法是新建一个QT环境变量
【立体匹配】C++调用Python3.6的配置_第4张图片

其他坑

1.C++调用Python时,默认路径为项目生成目录(“x64\Release”),因此Python脚本应放在生成目录下,而不是工程目录下,不然会找不到脚本文件,这个可以通过如下代码验证

wcout<

2.Python文件不能命名为test,否则找不到函数名
3.若Python中有语法错误,则不能导入,所以正确的做法是先在对应编译器中开发验证Python脚本,再使用C++进行调用
4.Debug工程会提示找不到python36_d.lib,在"Anaconda\libs"目录下,将python36.lib复制一份,并命名为python36_d.lib即可

你可能感兴趣的:(图像处理)