使用iplmage进行ROS应用程序中的分段错误

时间:2013-03-06 22:29:25

标签: pointers opencv segmentation-fault iplimage ros

我正在尝试在 ROS 节点中使用 cvBlob lib检测视频源上的blob。 我想,我用指针犯了一个错误,但我无法弄清楚在哪里。 而且,我是否必须释放一些这个变量?

Mat& corridorProces(Mat& resultImg)
{   
    Mat srcMat=resultImg.clone();
    cvtColor( resultImg, resultImg, CV_RGB2GRAY );
    IplImage src= resultImg.clone();
    IplImage *src_g= new IplImage(src);
    IplImage *src_g_inv=new IplImage(src);
    cvThreshold(src_g, src_g_inv,35,255, CV_THRESH_BINARY_INV);
    cvThreshold(src_g, src_g,40,255, CV_THRESH_BINARY);    
    IplImage *labelImg=cvCreateImage(cvGetSize(src_g), IPL_DEPTH_LABEL, 1);
    cvb::CvBlobs blobs;
    unsigned int result=cvb::cvLabel(src_g, labelImg, blobs);   
...
}

1 个答案:

答案 0 :(得分:0)

您需要使用cvCopy将图像复制到另一个图像。此外,您需要使用cvReleaseImage(& image);

发布图像