我的小程序用於讀取相機饋送,它工作正常。但是當運行應用程序時,當相機連接丟失時,應用程序終止。實際上,應用程序控制無法從cvCaptureFromFile()函數中發出,並且經過一段時間後,它會導致錯誤。當運行應用程序時,當相機連接丟失時,我想控制cvCaptureFromFile()函數意味着我想讓我的應用程序處於等待模式以便下一幀來自相機,並且當有相機連接時,我的應用程序應該從相機自動開始讀取幀。我想這樣做。我嘗試了很多,但無法獲得任何解決方案。 我使用的是opencv 2.4.4版本。我想把我的應用程序在相機連接的等待模式下
我的cpp文件是提前
#include "stdafx.h"
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <opencv2/imgproc/imgproc.hpp>
#include "stdio.h"
using namespace cv;
using namespace std;
char key;
IplImage* frame = cvCreateImage(cvSize(640,360),8,3);
int main()
{
IplImage *frame1;
back:
CvCapture* input = cvCaptureFromFile("rtsp://admin:[email protected]:554/ch1-s1?tcp");
if(!input)
{
printf("\nWaiting for camera connection.");
goto back;
}
while(1)
{
frame1 = cvQueryFrame(input);
/*if(frame1 == NULL)
printf("\nCamera is disconnected.");*/
cvResize(frame1,frame,1);
cvShowImage("frame", frame);
key = cvWaitKey(10);
if (char(key) == 27)
break;
}
cvReleaseCapture(&input);
return 0;
}
感謝。
檢查這些相關答案以檢查斷開相機不能做到這一點我自己: http://stackoverflow.com/questions/5637425/camera-connection-and-disconnection-catch http://stackoverflow.com/questions/4028463/detecting-an-unplugged-capture-device-opencv – 2015-02-23 07:19:46
首先,請停止使用opencv的不再維護的c-api。那麼,不幸的是,你無能爲力。一旦你的應用程序開始等待一個框架,它會這樣做*永遠*。 – berak 2015-02-23 12:01:35
除了有什麼他可以做的;這是在我指出的其他答案中完成的。當然,這不是微不足道的,但它似乎是可能的。 – 2015-02-23 16:19:29