首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

VS2010 OpenCv程序运行后出现应用程序无法正常启动的异常

2012-10-18 
VS2010 OpenCv程序运行后出现应用程序无法正常启动的错误C/C++ code#include cv.h#include highgui.h#

VS2010 OpenCv程序运行后出现应用程序无法正常启动的错误

C/C++ code
#include "cv.h"#include "highgui.h"#include <stdio.h>void displaydetection(IplImage* pInpImg,CvSeq* pFaceRectSeq,char* FileName);int main(int argc,char** argv){    IplImage* pInpImg=0;    CvHaarClassifierCascade* pCascade=0;        //指向后面从文件中获取的分类器    CvMemStorage* pStorage=0;                    //存储检测到的人脸数据    CvSeq* pFaceRectSeq;                        //用来接收检测函数返回的一系列的包含人脸的矩形区域        if (argc<2)    {        printf("missing name of image file!\n");        return -1;    }    //初始化    pInpImg=cvLoadImage(argv[1],1);        pStorage=cvCreateMemStorage(0);                //创建默认大先64k的动态内存区域    pCascade=(CvHaarClassifierCascade*)cvLoad("haarcascade_frontalface_alt.xml");        //加载分类器    if (!pInpImg||!pStorage||!pCascade)    {        printf("initialization failed:%s\n",(!pInpImg)?"can't load image file":(!pCascade)?"can't load haar-cascade---make sure path is correct":"unable to allocate memory for data storage",argv[1]);        return -1;    }    //人脸检测    pFaceRectSeq=cvHaarDetectObjects(pInpImg,pCascade,pStorage,        1.2,2,CV_HAAR_DO_CANNY_PRUNING,cvSize(40,40));    //将检测到的人脸以矩形框标出。    displaydetection(pInpImg,pFaceRectSeq,argv[1]);    cvReleaseImage(&pInpImg);    cvReleaseHaarClassifierCascade(&pCascade);    cvReleaseMemStorage(&pStorage);    return 0;}void displaydetection(IplImage* pInpImg,CvSeq* pFaceRectSeq,char* FileName){    int i;    cvNamedWindow("haar window",1);    printf("the number of face is %d",pFaceRectSeq->total);    for (i=0;i<(pFaceRectSeq?pFaceRectSeq->total:0);i++)    {        CvRect* r=(CvRect*)cvGetSeqElem(pFaceRectSeq,i);        CvPoint pt1={r->x,r->y};        CvPoint pt2={r->x+r->width,r->y+r->height};//        cvSetImageROI(pInpImg,*r);//        IplImage* dst=cvCreateImage(cvSize(92,112),pInpImg->depth,pInpImg->nChannels);//        cvResize(pInpImg,dst,CV_INTER_LINEAR);//        cvSaveImage("lian.jpg",dst);        cvRectangle(pInpImg,pt1,pt2,CV_RGB(0,255,0),3,4,0);    }    cvShowImage("haar window",pInpImg);//    cvResetImageROI(pInpImg);    cvWaitKey(0);    cvDestroyWindow("haar window");}

http://img.my.csdn.net/uploads/201210/08/1349684719_8924.JPG
人脸检测的代码
因为要用到分类器,在输入->附加依赖项 中加了opencv_objdetect230d.lib后出现程序运行后出现应用程序无法正常启动0xc000000d,怎么回事
求大神

[解决办法]
你需要三个库,opencv_core230d.lib,opencv_highgui230d.dll,opencv_objdetect230d.lib
另外把动态链接库及对应的.dll文件拷贝到应用程序所在文件夹下。
把头文件的目录也加上,即include目录。

在vs2010下如何使用opencv,网上有很多说明

热点排行