opencv错误如何解决??
#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
//#include<iostream.h>
void main()
{
//int i=0;
int mode=CV_RETR_CCOMP; //提取轮廓的模式
int contoursNum=0; //提取轮廓的数目
CvScalar externalColor=CV_RGB(0,0,0);
CvScalar holeColor=CV_RGB(255,0,0);
CvMemStorage * storage=cvCreateMemStorage(0); //提取轮廓需要的储存容量 0为默认64KB
CvSeq * pcontour=0; //提取轮廓的序列指针
IplImage * pImg=NULL;
IplImage * pContourImg=NULL;
IplImage * src=cvLoadImage("d:li.jpg",-1);
pImg=cvCreateImage(cvGetSize(src),src->depth,1);
pContourImg=cvCreateImage(cvGetSize(pImg),IPL_DEPTH_8U,3);
cvCvtColor(src,pImg,CV_RGB2GRAY); //将图像转换为灰度
cvThreshold(pImg,pImg,180,255,CV_THRESH_BINARY);//二值化
//--------------查找轮廓----------------
mode=CV_RETR_LIST;
contoursNum=cvFindContours(pImg,storage,& pcontour,sizeof(CvContour),mode,CV_CHAIN_APPROX_NONE);
////cout<<contoursNum<<" "<<endl;
//--------------画轮廓----------------
for (;pcontour!=0;pcontour=pcontour->h_next)
{
holeColor=CV_RGB(rand()&255,rand()&255,rand()&255);
externalColor=CV_RGB(rand()&255,rand()&255,rand()&255);
cvDrawContours(pContourImg,pcontour,externalColor,holeColor,1,2,8);
}
// cvDrawContours(pContourImg,pcontour,externalColor,holeColor,0,2,8);
cvNamedWindow("src",CV_WINDOW_AUTOSIZE);
cvNamedWindow("pcontour",CV_WINDOW_AUTOSIZE);
cvShowImage("src",src);
cvShowImage("pcontour",pContourImg);
cvWaitKey(0);
//cvReleaseImage(&src);
cvReleaseImage(&pImg);
cvReleaseImage(&pContourImg);
}
ps:之前是没有问题的,可以有结果,突然就有异常了。不知道如何解决。下断点后,发现红色部分异常。感觉很奇怪。错误为,opencv error:bad argument<array should be cvmat or IplImage>