Opencv3源代码修改

本文介绍了如何修改OpenCV3的源代码,以替换其内存分配和释放函数,利用名为cplusplus_basic的动态链接库中的malloc和free函数。通过修改`modules/core/src/alloc.cpp`并更新`modules/core/CMakeLists.txt`来设置头文件和库文件路径,然后链接cplusplus_basic_library。此外,还提及了使用jemalloc等内存管理库的可能性。
摘要由CSDN通过智能技术生成

opencv作为开源项目,阅读和修改源代码必不可少.

这里列举如何替换opencv的内存分配和释放函数.


opencv架构的很好,所有的内存都是从

void* fastMalloc( size_t size )

void fastFree(void* ptr)

分配和释放,因而,只要修改这两个函数就可以自定义内存管理策略.


这里假设有一个动态链接库叫cplusplus_basic,

其中有两个函数

void * malloc(size_t arg);

void free(void * arg);


1.修改modules/core/src/alloc.cpp(值得一提的是,opencv的fastMalloc自带内存对齐,而且源码写的非常精简)

#include "precomp.hpp"

/*
import memory::malloc
import memory::free
*/
#include <boost/config.hpp>
namespace memory{
    BOOST_SYMBOL_IMPORT void * malloc(size_t arg);
    BOOST_SYMBOL_IMPORT void free(void * arg);
}

namespace cv
{

/**/
static inline void * ____opencv_Malloc(size_t size){
    return memory::malloc(size);
}
/**/
static inline void ____opencv_Free(void * arg){
    return memory::free(arg);
}

static void* OutOfMemoryError(size_t size)
{
    CV_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值