0
哪個OpenCV的功能支持模擬攝像機進行直播?哪個OpenCV的功能支持模擬攝像機直播?
請給我答案。
我試過OpenCV的CvCapture和VideoCapture功能。 它適用於USB攝像頭,但不適用於模擬攝像頭。
我試過VideoInput函數。它與模擬攝像機很好地工作,但我想opencv內置函數。 所以請幫助我。 謝謝你的時間。
這是我用過的cvcapture函數的代碼。
#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 "videoInput.h"
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
char key;
int main()
{
cvNamedWindow("Camera_Output", 1); //Create window
CvCapture* capture = cvCaptureFromCAM(CV_CAP_ANY); //Capture using any camera connected to your system
while(1){ //Create infinte loop for live streaming
IplImage* frame = cvQueryFrame(capture); //Create image frames from capture
cvShowImage("Camera_Output", frame); //Show image frames on created window
key = cvWaitKey(10); //Capture Keyboard stroke
if (char(key) == 27){
break; //If you hit ESC key loop will break.
}
}
cvReleaseCapture(&capture); //Release capture.
cvDestroyWindow("Camera_Output"); //Destroy Window
return 0;
}
的代碼端
接着代碼使用VideoInput功能。
的代碼是代碼
#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 "videoInput.h"
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
int main(int, char**)
{
videoInput VI;
int numDevices = VI.listDevices();
//int device1= 0;
VI.setup(0);
unsigned char* yourBuffer = new unsigned char[VI.getSize(0)];
IplImage* colourImage = cvCreateImage(cvSize(320,240),8,3);
while(1)
{
VI.grabFrame(0, yourBuffer);
colourImage->imageData = (char*)yourBuffer;
cvConvertImage(colourImage, colourImage, 3);
cvShowImage("test",colourImage);
if(cvWaitKey(10) == 27)
break;
}
return 0;
}
端
和最後一個代碼是使用videocapture函數
代碼
#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 "videoInput.h"
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
int main() {
VideoCapture stream1(-1); //0 is the id of video device.0 if you have only one camera.
if (!stream1.isOpened()) { //check if video device has been initialised
cout << "cannot open camera";
return 0;
}
//unconditional loop
while (true) {
Mat cameraFrame;
stream1.read(cameraFrame);
imshow("cam", cameraFrame);
if (waitKey(30) >= 0)
break;
}
return 0;
}
的代碼結束
請幫助我。
請分享1)如何使你的模擬攝像機輸出進入你的電腦2)VideoInput代碼,工程和3)你試着用OpenCV的,試圖做你想做的是什麼的一個例子。 – KobeJohn
實際上videoInput與模擬攝像頭運行良好,但我想使用Qt與C++的GUI目的,所以我得到了在我的qt項目中包含videoInput.lib文件後的錯誤,這就是爲什麼我搜索OpenCV的內置功能。 感謝您的回覆。 – user2865434
好的更新。我在python中使用opencv,所以沒有試過你的代碼。請解釋兩個OpenCV示例中不起作用的內容。 – KobeJohn