zoukankan      html  css  js  c++  java
  • OpenCV Error: Bad argument (unrecognized or unsupported array type) in u unction

    今天遇到个错误: 在程序退出的时候 提示报错

    OpenCV Error: Bad argument (unrecognized or unsupported array type) in u
    unction, file ..\..\..\src\opencv\modules\core\src\array.cpp, line 996

    然后上代码

    int _tmain(int argc, _TCHAR* argv[])
    {
        IplImage* src      = 0;        //原图
        IplImage* graySrc  = 0;        //灰度图
        int key = 0;
        CvCapture* capture = cvCaptureFromCAM(0);
        cvNamedWindow("camera");
        cvNamedWindow("gray");
        while( NULL != (src = cvQueryFrame(capture) ) )
        {
            cvShowImage("camera",src);  //显示摄像头画面
            if( (key = waitKey(10)) !=-1)//如果2ms内有按键  有返回值key
            {
                printf("press key:%c\n",key);
                if(key == 'q'){
                    waitKey(10);
                    cvDestroyWindow("camera");
                    cvDestroyWindow("gray");
                    break;
                }
            }
            //获取src的灰度图
            graySrc = cvCreateImage(cvSize(src->width,src->height),src->depth,1);
            cvCvtColor(src,graySrc,CV_BGR2GRAY);
            cvShowImage("gray",graySrc);
        }
        cvReleaseImage(&src);
        cvReleaseImage(&graySrc);
        cvReleaseCapture(&capture);
        return 0;
    }

    捣鼓一阵,发现应该是内存错误。

    根据http://blog.csdn.net/zhmyy/article/details/5374111,src和gray在ReleaseImage之前已经释放掉,所以找不到地址,于是报错

    于是在Release之前判断一下是否已经释放

        if(!src)
            cvReleaseImage(&src);
        if(!graySrc)
            cvReleaseImage(&graySrc);
  • 相关阅读:
    ORM中的事务和锁
    双下划线跨表查询 聚集查询 分组查询 FQ查询
    cookie和session
    多表查询
    单表查询
    ORM
    Djangon之模板
    Django之视图函数
    Django之URL路由系统
    web框架的本质及自定义web框架
  • 原文地址:https://www.cnblogs.com/skiz/p/3018635.html
Copyright © 2011-2022 走看看