python调用c++传递数组的实例

yipeiwu_com6年前Python基础

如下所示:

INPUT = c_int * 4
# 实例化一个长度为2的整型数组
input = INPUT()
# 为数组赋值(input这个数组是不支持迭代的)
input[0] = 11
input[1] = 2
input[2] = 3
input[3] = 4
dll.teststring.restype = c_char_p
# bytes(aaaa, encoding="utf-8")
a = dll.teststring(input,4)


MYLIBDLL char* teststring(int* plus1, int len);

char* teststring(int* plus1,int len) {


	for (int i = 0; i < len; i++) {
		printf("%d \n", plus1[i]);
	} 




	Mat mat;
	//加载图片  
	mat = imread("bgs.jpg", CV_LOAD_IMAGE_COLOR);
	printf("a %d %d", mat.rows, mat.cols);
	//if (!mat.empty()) {


	int m, n;
	n = mat.cols * 3;
	m = mat.rows;
	unsigned char *data = (unsigned char*)malloc(sizeof(unsigned char) * m * n);
	int p = 0;
	for (int i = 0; i < m; i++)
	{
		for (int j = 0; j < n; j++)
		{
			data[p] = mat.at<unsigned char>(i, j);
			p++;
		}
	}
	*plus1 = p;
	return (char*)data;
}

以上这篇python调用c++传递数组的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python中set常用操作汇总

sets 支持 x in set, len(set),和 for x in set。作为一个无序的集合,sets不记录元素位置或者插入点。因此,sets不支持 indexing, sli...

Python绘图Matplotlib之坐标轴及刻度总结

Python绘图Matplotlib之坐标轴及刻度总结

学习https://matplotlib.org/gallery/index.html 记录,描述不一定准确,具体请参考官网 Matplotlib使用总结图 import ma...

unittest+coverage单元测试代码覆盖操作实例详解

unittest+coverage单元测试代码覆盖操作实例详解

基于上一篇文章,这篇文章是关于使用coverage来实现代码覆盖的操作实例,源代码在上一篇已经给出相应链接。 本篇文章字用来实现代码覆盖的源代码,整个项目的测试框架如下: 就是在源代码...

PyTorch学习笔记之回归实战

PyTorch学习笔记之回归实战

本文主要是用PyTorch来实现一个简单的回归任务。 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn.functio...

Python3中lambda表达式与函数式编程讲解

简单来说,编程中提到的 lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。其一般有如下几种使用方式: 1、lambda的一般形式是关...