у меня есть VC++
проект для программирования камеры, framegabber, а также отображения захвата в реальном времени, используя OpenCV
, проблема в том, что программа отлично работает в режиме отладки и показывает захват в реальном времени с камеры, однако, когда я переключаю ее в режим Release, .exe-файл программы не скрывает окно и не показывает ничего с камеры , вот мой код:
//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);
}
}
}
У кого-нибудь есть идеи?
Убедитесь, что вы связываете все необходимые библиотеки в свойствах проекта. Вы должны установить эти свойства для режимов отладки и выпуска.
Я также хотел бы вернуться к определениям препроцессора (свойства проекта -> свойства конфигурации -> C / C ++ -> препроцессор -> определения препроцессора) для режимов отладки и выпуска конфигурации.
Других решений пока нет …