iOS - OpenCV 发布 IplImage 崩溃



我在释放分配给 IplImage 的内存时遇到问题。只需使用 cvReleaseImage

cvReleaseImage(&dilateImage);

代码在我释放"扩展图像"的行崩溃。

有什么建议吗?

谢谢:)

- (void)processImage:(cv::Mat&)image;
{
   cv::Mat grayImage;
   cv::cvtColor(image, grayImage, cv::COLOR_BGR2GRAY);
   Canny(grayImage, grayImage, 66.0, 133.0, 3);
   cv::adaptiveThreshold( grayImage, grayImage, 255,cv::ADAPTIVE_THRESH_MEAN_C, cv::THRESH_BINARY, 11, 2 );
   IplImage img = IplImage(grayImage);
   IplImage* dilateImage = cvCloneImage(&img);
   IplConvKernel* kernal = cvCreateStructuringElementEx(3,1, 1, 0, CV_SHAPE_RECT);
   cvDilate(dilateImage, dilateImage, kernal, 2);
   cvErode(dilateImage, dilateImage, kernal, 4);
   cvDilate(dilateImage, dilateImage, kernal, 2);
   kernal = cvCreateStructuringElementEx(1, 3, 0, 1, CV_SHAPE_RECT);
   cvErode(dilateImage, dilateImage, kernal, 1);
   cvDilate(dilateImage, dilateImage, kernal, 2);
   image = cv::cvarrToMat(dilateImage);
   cvReleaseImage(&dilateImage);//<~Crash
}

您将图像作为引用(cv::Mat&)传入,因此此方法之外的某些内容可能仍在保留图像。

您能否尝试按值传递它并查看是否仍然发生崩溃?

相关内容

  • 没有找到相关文章

最新更新