c - 断言失败

标签 c opencv assertion integral

为什么当我使用cvIntegral()时总是收到此错误

if ((image = cvLoadImage(filename,1))==0){ 
return -1;//if there is something wrong exit with -1
   }

image2 = cvCreateImage(cvSize(image->width++,image->height++),IPL_DEPTH_8U,1);

cvIntegral(image, image2, NULL,NULL);
cvReleaseImage(&image);//release image and exit
cvReleaseImage(&image2);//release image and exit

return 0;

这是错误

OpenCV Error: Assertion failed (sum.data == sum0.data && sqsum.data == sqsum0.data && tilted.data == tilted0.data) in cvIntegral, file /build/buildd/opencv-2.3.1/modules/imgproc/src/sumpixels.cpp, line 306 terminate called after throwing an instance of 'cv::Exception'
what(): /build/buildd/opencv-2.3.1/modules/imgproc/src/sumpixels.cpp:306: error: (-215) sum.data == sum0.data && sqsum.data == sqsum0.data && tilted.data == tilted0.data in function cvIntegral

最佳答案

cvIntegral期望输出图像的类型为 CV_32FCV_64F。此外,源图像和目标图像的 channel 数应该相同。你应该这样做:

image2 = cvCreateImage(cvSize(image->width+1,image->height+1),IPL_DEPTH_32F,image->nChannels);

关于c - 断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15699136/

相关文章:

c - 设置结构体指针

c - 了解STM32引用手册中的写入flash流程

c - 开放管道上 CloseHandle 上的 sigsegv

c++ - 前向声明 cv::Mat

c++ - 如何在 OpenCV 中找到最大矩形的坐标?

c - 存储随机数 C 的值

c++ - 在黑色图像上叠加精巧的边缘

c++ - Visual C++ 断言失败

java - 复制构造函数断言错误

java - 如何断言某个字符串至少包含列表 <String> 中的一个值?