pythonunittest框架使用方法 python中如何调用halcon方法?

[更新]
·
·
分类:互联网
2353 阅读

pythonunittest框架使用方法

python中如何调用halcon方法?

python中如何调用halcon方法?

正常情况下Python是可以调用C 接口的,但是halcon中的数据结构是自定义类型,Python的基类型没有定义, 不过可以尝试中间层转换。
1. Python调用C 接口方法
比如有接口动态库myHalcon.dll
封装了两个接口
DLLEXPORT int sum(int a, int b) { return a b }
DLLEXPORT int sub(int a, int b) { return a-b }
import ctypes
import os
CUR_(__file__)
(CUR_PATH,myHalcon.dll)
print (dllPath)
#(dllPath)
#print mydll
(dllPath)
print (pDll)
pResutl (1,4)
(1,4)
print (pResutl) print (pResult2)
好,有了以上知识,Python调用C 的接口,那么接下来可以使用自定义一个halcon动态库
UseHalconByPyhon.dll
数据类型对应好,比如:
类型 halcon UseHalconByPyhon
图像数据 HObject struct{unsighed char*pdata,int width, int height,int type}
int HTuple int
double HTuple double
string HTuple stirng
通过自定义接口,一一做对应接口参数,自己转换一层就可以了。
如下表中,数据,一一来做对应, halcon-gtC-gtpython这个过程
上面这个只是通过python可以调用C 接口而想到的,这样做比较麻烦(我自己没有测试过)

Python如何嵌入C/C 进行开发?

你说的是在C/C 程序中调用Python吧,这个实现起来非常简单,只需要在头文件中引入Python.h文件,然后在编译的时候链接到Python库即可,下面我简单介绍一下,以Linux系统为例,感兴趣的朋友可以尝试一下:
01安装python-devel插件首先,安装python-devel插件,这个插件包含有C/C 程序调用Python的头文件和库文件,在编写和编译程序的时候会用到,安装的话,直接在终端输入命令“yum install -y python-devel”即可,默认情况下安装的是Python2,需要安装Python3.x的话,运行命令“yum install -y python3x-devel”即可:
02C/C 程序调用Python插件安装完成后,我们就可以直接编写C/C 程序来调用Python了,测试代码如下,这里我简单输出了一条Python语句,基本思想先初始化,然后调用Python,最后再结束,整个流程非常简单,也非常容易理解:
编写完成后,wq保存程序,接着在终端运行“gcc -lpython2.7 test.c -o test”命令(这里替换成你的C/C 文件),即可正常编译程序,运行效果如下,和预期的一样:
当然,你也可以直接调用py文件(脚本),传入参数,取得返回结果,这里我简单编写了一个add求和函数,输入2个参数,返回一个结果:
C/C 调用代码如下,基本流程和前面一样,先初始化,然后加载模块,调用函数,传入参数,最后再取得执行结果,代码量有些多,但理解起来不难:
至此,我们就完成了在C/C 程序中调用Python。总的来说,整个过程非常简单,只要你有一定C/C 基础,熟悉一下上面的示例和代码,很快就能掌握的,Windows环境类似,也需要导入对应头文件和库,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。