python os.system调用opencv c++可执行程序

1、系统背景

分别在win10 和 ubantu14.04 系统下编译c++和调用

2、简单介绍python os,system

os.system(‘ str ’)相当于 打开cmd窗口 输入命令并运行,str是命令。python执行完这个方法返回的是执行状态码,不返回程序结果,通过这个方法我们是获取不到执行完的结果的。

3、win10 下编译运行opencv C++代码

原料:vs c++ (需要手动配置好opencv的运行环境哦)
win10下生成可执行文件xxx.exe后python 中调用:
import os
os.system(‘start xxx.exe 您想要传入的参数’)
**主要踩过的坑:
如果想要传入参数,main函数的传参一定要用标准格式写。
例如:
int main(int argc,char argv){…}
当实参传给main函数之后,argv的第一个元素指向程序的名字或者一个空字符串,接下来的元素依次传递给命令行提供的实参。

4、ubantu下编译运行opencv C++代码

原料:opencv源码包2.4.11 g++
1)安装opencv源码包 配置opencv环境
opencv源码包下载地址https://opencv.org/releases.html
选择2.4.11版本sources下载,解压到/home根目录下
然后
安装依赖项
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev li
为了躲坑(不使用CUDA配置opencv),修改opencv编译配置文件
进入到opencv/cmake 目录下,找到OpenCVDetectCUDA.cmake文件并打开,定位到26行左右,修改set(HAVE_CUDA 1)为set(HAVE_CUDA 0)
这里修改的目的是为了避免后面执行sudo make install出现如下的错误信息。
nvcc warning : The ‘compute_20’, ‘compute_20’,‘sm_21’ architectures are deprecated
进入到opencv 目录下,找到CMakeList.txt文件并打开,定位到176,177行,将ON改为OFF。

MAKE一下:
在opencv目录下新建build文件夹。

cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local … #开始编译
make -j8
sudo make install -j8
到这里opencv就装好了。
2) 编译c++代码
有两种方法来编译,一种是CMAKE
另一种是命令行
CMAKE太麻烦。所以这里只有命令行
在您要编译的xxx.cpp文件所在位置打开终端,输入命令:
g++ xxx.cpp pkg-config opencv --libs --cflags opencv -o xxx

注:
如果这里报错说找不到core.hpp文件等opencv包的路径配置问题的话,
请把您xxx.cpp里头文件的引入都改成
#include
就好

3) python 调用
三行搞定
python
import os
os.system(‘我是编译好的文件的绝对路径 我是参数’)

你可能感兴趣的:(python,c++)