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」のインスタンスをスローした後に呼び出されて終了します
。エラー: (-215) sum.data == sum0.data && sqsum.data == sqsum0.data &&tilted.data == 関数内のtilted0.data cvIntegral

4

1 に答える 1

2

cvIntegralCV_32Fは、出力イメージのタイプがorであることを期待していますCV_64F。また、ソース イメージと宛先イメージのチャネル数は同じである必要があります。あなたはこれをしているはずです:

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