Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ VC++;OpenCV项目没有';t在释放模式下显示摄像头实时捕获_C++_Visual Studio 2010_Opencv_Release Mode_Debug Mode - Fatal编程技术网

C++ VC++;OpenCV项目没有';t在释放模式下显示摄像头实时捕获

C++ VC++;OpenCV项目没有';t在释放模式下显示摄像头实时捕获,c++,visual-studio-2010,opencv,release-mode,debug-mode,C++,Visual Studio 2010,Opencv,Release Mode,Debug Mode,我有一个VC++项目,用于编程照相机、framegabber以及使用OpenCV显示实时捕获。问题是,该程序在调试模式下工作正常,并显示摄像机的实时拍摄,但当我将其更改为释放模式时,该程序的.exe文件不会隐藏窗口,也不会显示摄像机的任何内容。这是mycode: //allocate memory if((_memoryAllc = Fg_AllocMemEx(fg,totalBufSize, CG_Options::getNBuffer()))!=NULL){ if(

我有一个
VC++
项目,用于编程照相机、framegabber以及使用
OpenCV
显示实时捕获。问题是,该程序在调试模式下工作正常,并显示摄像机的实时拍摄,但当我将其更改为释放模式时,该程序的.exe文件不会隐藏窗口,也不会显示摄像机的任何内容。这是mycode:

//allocate memory
if((_memoryAllc = Fg_AllocMemEx(fg,totalBufSize, CG_Options::getNBuffer()))!=NULL){         
    if(Fg_AcquireEx(fg,nCamPort,GRAB_INFINITE,ACQ_STANDARD,_memoryAllc)<0){
        CExceptionHandler::GrabberErrorMessage(fg,"Can not start Acquiring images .");  
    }
    else{                   
        //create a window and set the handler from openCV to win32 
        cv::namedWindow("test",cv::WINDOW_AUTOSIZE);                        
        hWnd2 = (HWND) cvGetWindowHandle("test");   
        hParent = ::GetParent(hWnd2);                               
        ::SetParent(hWnd2, hWnd); 
        ::ShowWindow(hParent, SW_HIDE); 
        _liveCapturing=true;
        lastPicNr = 0;  
        SetWindowTextW(hStatus, L"Live Capturing ... ");

        while(IsWindowVisible(hWnd2)){ //show the data while the window is open and visible
            lastPicNr = Fg_getLastPicNumberBlockingEx(fg,lastPicNr+1,nCamPort,10,_memoryAllc);                          
            iPtr=(unsigned char*)Fg_getImagePtrEx(fg,lastPicNr,0,_memoryAllc);                      
            cv::Mat _matrixImage(cv::Size(CG_Options::getWidth(),CG_Options::getHeight()), CV_8UC1,iPtr , cv::Mat::AUTO_STEP);                                                                                              
            cv::imshow("test",_matrixImage);
            cv::waitKey(10);
        }                       
    }
}
//分配内存
如果((_memoryAllc=Fg_AllocMemEx(Fg,totalBufSize,CG_Options::getNBuffer())!=NULL){

如果(Fg_acquirex(Fg,ncimport,GRAB_INFINITE,ACQ_STANDARD,_memoryAllc)请确保在项目属性中链接所有必要的库。您必须为调试和发布模式设置这些属性。
我还将重温预处理器定义(项目属性->配置属性->C/C++->预处理器->预处理器定义)用于调试和发布配置模式。

谢谢。问题的一部分是因为这个原因,我还不得不将opencv命令更改为旧的命令。很高兴听到你解决了你的问题。我陷入了许多愚蠢的情况,因为调试和发布模式之间的项目设置不一致。无论如何,祝你好运我们的项目!我将cv::NamedWindow()更改为cvNamedWondow(),其余的opencv命令也是如此