python call c++ function---传参

来源:互联网 发布:淘宝订单号在哪里找 编辑:程序博客网 时间:2024/05/28 23:22

紧接上文,举个实栗吧
c++ function:

extern "C" void segment(unsigned char* inputimage,unsigned char* outputimage,float a,int c){...}

python 传入两张ndarray 格式的image,参数传入需要变换数据类型。

import ctypes as Cprojectname.functionname(inputimage.ctypes.data_as(C.POINTER(C.c_ubyte)),outputimage.ctypes.data_as(C.POINTER(C.c_ubyte)),(C.c_float)(0.9),(C.c_int)(3))

接下来的主要问题是,进到C++里面,怎么用这两个unsigned char*类型的图片呢?以下提供两种思路:
输入转化为mat,方便接下来对图像的处理

Mat inputimageMat(inputimage_rows,inputimage_cols,CV_8UC3,inputimage);

输出转化为mat,由于把输出图像的地址用来初始化这个mat,对这个mat的修改就是对输出图像的修改了。

Mat python_data(inputimageMat.rows,inputimageMat.cols, CV_8UC1, _outputimage);
0 0