求助opencv运行错误 bad flag(parameter or structure field)
我刚接触opencv不久,纯属菜鸟,还望各位大侠帮忙,
opencv运行之后,弹出对话框
bad flag(parameter or structure field)(Unrecognized or unsupported array type)
部分代码为:
char diff(string s1,string s2, string s3,CHAR *diffframe)//三帧差法
{
int i,j;
IplImage* image1=0;
IplImage *gg1=0, *gg2=0, *gg3=0;
IplImage* image2=0;
IplImage* image3=0;
image1=cvLoadImage(s1.c_str(), 0);
image2=cvLoadImage(s2.c_str(), 0);
image3=cvLoadImage(s3.c_str(),0);
gg1=cvCreateImage( cvSize(image1->width,image1->height), 8, 1 );
gg2=cvCreateImage(cvSize(image1->width,image1->height), 8, 1);
gg3=cvCreateImage(cvSize(image1->width,image1->height), 8, 1);
for(i=0;i<image1->width;i++)
{
for(j=0;j<image1->height;j++)
{
CvPoint pt = {i,j};
((uchar*)(gg1->imageData + gg1->widthStep*pt.y))[pt.x]=abs(((uchar*)(image1->imageData + image1->widthStep*pt.y))[pt.x]-((uchar*)(image2->imageData + image2->widthStep*pt.y))[pt.x]);
((uchar*)(gg2->imageData + gg2->widthStep*pt.y))[pt.x]=abs(((uchar*)(image1->imageData + image1->widthStep*pt.y))[pt.x]-((uchar*)(image3->imageData + image3->widthStep*pt.y))[pt.x]);
}
}
cvAnd(gg1, gg2, gg3,0);
diffframe= gg3->imageData;
return *diffframe;
}
int main()
{
CHAR *d1;
CHAR *d2;
CHAR *d3;
d1="1";
d2="2";
d3="3";
diff("3.bmp","1.bmp","5.bmp", d1);
printf("OK\n");
diff("3.bmp","2.bmp","4.bmp",d2);
printf("OK\n");
cvAnd(d1, d2, d3,0);//出错处
printf("OK\n");
。。。。。
}
我在每一行代码后逐一加上输出,到cvand处,不再输出“OK”