0

为什么我使用时总是收到此错误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 错误:在 cvIntegral 文件 /build/buildd/opencv-2.3.1/modules/ 中断言失败(sum.data == sum0.data && sqsum.data == sqsum0.data && tilted.data ==tilted0.data) imgproc/src/sumpixels.cpp,第 306 行在抛出 'cv::Exception'
what() 实例后终止调用:/build/buildd/opencv-2.3.1/modules/imgproc/src/sumpixels.cpp:306:错误:(-215) sum.data == sum0.data && sqsum.data == sqsum0.data && 倾斜.data == 函数 cvIntegral 中的倾斜0.data

4

1 回答 1

2

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

image2 = cvCreateImage(cvSize(image->width+1,image->height+1),IPL_DEPTH_32F,image->nChannels);
于 2013-03-29T07:33:17.387 回答