gpt4 book ai didi

opencv - 删除原始缓冲区时,opencv cvarrtoMat segfault

转载 作者:行者123 更新时间:2023-12-02 17:14:17 28 4
gpt4 key购买 nike

我想将一个IplImage转换为cv::Mat,除尝试删除原始缓冲区时的一点段错误外,所有工作都可以,我将复制标志设置为true。

我确定我做错了什么,但我不知道...

这是我的工作:

IplImage* cvImage =  cvCreateImage( cvSize(width, height), IPL_DEPTH_8U, 3) ;

{... fill cvImage data by mcopy from a blob ...}

cv::Mat mat = cv::cvarrToMat(cvImage, true) ;

if (cvImage)
delete (cvImage) ;

也许我误解了复制的东西,并且只能删除tge cvImage-> data,而不是整个对象?

谢谢 :)

最佳答案

在opencv中,如果使用IplImage*创建cvCreateImage,则不应使用delete释放它。尝试:

cvReleaseImage( &cvImage );

因为IplImage *来自C-api,所以您应该按照建议释放它们。您必须执行 &cvImage。您可以从文档中看到: http://docs.opencv.org/modules/core/doc/old_basic_structures.html?highlight=cvreleaseimage#releaseimage

关于opencv - 删除原始缓冲区时,opencv cvarrtoMat segfault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17927585/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com