首页 理论教育 改编OpenCV函数库以适应VC智能摄像机

改编OpenCV函数库以适应VC智能摄像机

时间:2023-06-15 理论教育 版权反馈
【摘要】:扩展OpenCV源代码来适应智能摄像机,但是不能丢失源代码与PC平台的兼容性。移植OpenCV的关键点是它的内存分配/释放与VC摄像机内部的存储器管理系统的相互兼容。将OpenCV移植到摄像机上的本质要求是确定VC开发环境的内存分配函数。

改编OpenCV函数库以适应VC智能摄像机

扩展OpenCV源代码来适应智能摄像机,但是不能丢失源代码与PC平台的兼容性。为了选择正确的操作系统函数,必须给编译器提供当前处理器架构的信息。在我们的方案中,编译器变量(VC_DSP)提供了这种信息。

移植OpenCV的关键点是它的内存分配/释放与VC摄像机内部的存储器管理系统的相互兼容。以下三步描述了源代码级的改编。

(1)执行VC系统函数sysmalloc()和sysfree()可以进行内存的分配或释放。为了确保这两个重要函数的功能在智能摄像机中以OpenCV方式实现,需要修改原函数icvDefaultAlloc()及icvDefaultFree(),并且创建一个新函数alloca()实施调用VC sysmalloc()和sysfree()系统:

①以VC智能摄像机为例,在cxcore.h中插入附加的原型定义:

②实现匹配函数VCmalloc和VCfree,进一步完成文件cxalloc.cpp中使用的函数icvDefaultAlloc和icvDefaultFree的VCDSP专用implementation。以下代码片段提供了关于implementation的信息:(www.xing528.com)

③激活在文件cxlmsc.h中的VC专有内存分配释放函数

(2)出于完备性考虑,函数icvInitProcessorInfo()应该包括描述TI处理器的cpu_info()。这个附加的初始化必须在文件cxswitcher.cpp中执行。

(3)当涉及函数icvCreateContext()和icvDestroyContext()时必须引起注意。我们需要特别注意它们在智能摄像机上的新定义,所以在读下面的源代码时,应该检查一下在文件cxerror.cpp所做的修改。

将OpenCV移植到摄像机上的本质要求是确定VC开发环境的内存分配函数。对于输入输出功能函数仍然存在一些小的问题,但是利用VC软件开发库中现存的功能,能够比较容易地模拟这些不兼容性。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈