• 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);
  • 相关阅读:
    Python常用模块学习
    如何在cmd下切换不同版本的Python
    Python3
    Python第二模块(文件和函数)
    Hibernate教程一览
    struts2框架一览
    Java正式day_04——嵌套循环
    AJAX
    JS+JQUERY
    Mybatis注意问题
  • 原文地址:https://www.cnblogs.com/skiz/p/3018635.html
Copyright © 2020-2023  润新知