boost_python扩展内存泄露

幻海轩辕 幻海轩辕 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
下面是在下写python的扩展代码,但是出现了泄露,希望高手指点一二


const char * decodeYUV420RGB(char * buf, int width, int height)
{
int R,G,B,Y,U,V;
int x,y;
unsigned char *rgb24;
rgb24 = (unsigned char *)malloc(sizeof(char)*width*height*3);
unsigned char* tempbuf = (unsigned char*)buf;
unsigned char *yuv420[3] = {tempbuf,tempbuf+width*height,tempbuf+width*height*5/4};
int nWidth = width>>1; //色度信号宽度
for (y=0;y<height;y++)
{
for (x=0;x<width;x++)
{
Y = *(yuv420[0] + y*width + x);
U = *(yuv420[1] + ((y>>1)*nWidth) + (x>>1));
V = *(yuv420[2] + ((y>>1)*nWidth) + (x>>1));
R = Y + 1.402*(V-128);
G = Y - 0.34414*(U-128) - 0.71414*(V-128);
B = Y + 1.772*(U-128);

//防止越界
if (R>=255)R=254;
if (R<=0)R=1;
if (G>=255)G=254;
if (G<=0)G=1;
if (B>=255)B=254;
if (B<=0)B=1;

*(rgb24 + ((y)*width + x)*3) = R;
*(rgb24 + ((y)*width + x)*3 + 1) = G;
*(rgb24 + ((y)*width + x)*3 + 2) = B;
// *(rgb24 + (y*width + x)*3) = B;
// *(rgb24 + (y*width + x)*3 + 1) = G;
// *(rgb24 + (y*width + x)*3 + 2) = R;
}
}
return (char*)rgb24;
}
BOOST_PYTHON_MODULE(yuvtorgb)
{
def("decodeYUV420", decodeYUV420RGB);
}
...全文

相关推荐

boost.python 编写扩展python库

环境 vs2008 构建 python26 boost_1_44 使用boost.python 编写扩展python库,使用mfc例子调用扩展的python库。 myPydll 工程为扩展python库,生成文件myPydll.dll,将该文件拷贝到python解释器可搜索的路径下,如我的电脑就是“C:\Python26\DLLs”,并改后缀名为pyd。即文件myPydll.pyd。或者与当前测试的程序在同一目录,如测试程序test.exe与myPydll.pyd在同一目录,test.exe即可正常运行 test 工程是测试调用自己编写的python扩展库的mfc例子。 文件 pyinit.hpp 是vc中使用python时的初始化封装 使用的boost库版本是1.44,我的boost库路径是“D:\Program Files\Code\boost_1_44_0” boost_python-vc90-mt-gd-1_44.dll boost_python-vc90-mt-gd-1_44.lib 文件夹中的dll和lib等文件是 boost.python库的动态库和lib的release和debug版。

iuan19

点云边缘有序提取实战:PCL与CGAL Alpha Shapes原理及C++实现

在三维点云处理中,边缘点提取只是第一步,如何让这些点按几何顺序排列成闭合轮廓,才是下游测量与轨迹规划的关键。Alpha Shapes算法通过一个可变半径的滚圆界定点集内外边界,能更稳定地区分边缘与内部点,而其高效实现往往依赖Delaunay三角网的空圆特性。借助PCL完成平面拟合投影,再交由CGAL的Alpha_shape_2分类边类型,最终利用Delaunay邻接关系将边缘点串联成有序环。该方法特别适合平面工件轮廓测量、断面分析和激光扫描后处理等场景,且排序逻辑可复用到三维骨架或多边形轮廓提取中。本文从原

weixin_33812433

python专用boost扩展模块/boost_python-1.55.win32-py3.3.rar

python3.3windows32位专用boost扩展模块/boost_python-1.55.win32-py3.3

sangsi

Boost.Python中文文档

Boost.Python文档中文翻译。译者:金庆,2008.6.16。请关注:Boost文档翻译项目 ( http://groups.google.com/group/boost_doc_translation?hl=zh-CN )欢迎访问:金庆的专栏 ( http://blog.csdn.net/jq0123 )

金庆

boost_python静态库vs2003

boost_python静态库 vs2003 + python2.5.6

加个验证码
评论
收藏 已收藏
分享
返回顶部