2
我正在使用OpenCV並嘗試將高斯模糊應用於傳入的視頻流。我基本上使用cvQueryFrame刪除一個框架,模糊它,並顯示在屏幕上的框架。但事情是,在我應用模糊之後,我的視頻卡在第一幀上了....任何人都知道爲什麼?它基本上顯示一幀而不是視頻。第二我刪除模糊開始輸出視頻了。OpenCV視頻編輯?
#include "cv.h"
#include "highgui.h"
#include "cvaux.h"
#include <iostream>
using namespace std;
int main()
{
//declare initial data
IplImage *grabCapture= 0; //used for inital video frame capture
IplImage *process =0; //used for processing
IplImage *output=0; //displays final output
CvCapture* vidStream= cvCaptureFromCAM(0);
cvNamedWindow ("Output", CV_WINDOW_AUTOSIZE);
int createimage=1;
while (1)
{
grabCapture= cvQueryFrame (vidStream);
if (createimage==1)
{
process= cvCreateImage (cvGetSize(grabCapture), IPL_DEPTH_16U, 3);
createimage=0;
}
*process=*grabCapture;
cvSmooth (process,process,CV_GAUSSIAN,7,7); //line that makes it display frame instead of video
cvShowImage("Output",process);
}
//clean up data
cvReleaseImage (&grabCapture);
cvReleaseImage (&process);
cvReleaseImage (&output);
cvReleaseCapture (&vidStream);
return 0;
}
感謝文檔,而不是cvwaitkey()只爲用戶輸入? 爲什麼只需要處理圖像? 謝謝:) – fdh
這就是名字所暗示的,但它也用於事件處理。看看我鏈接到的文檔中的註釋。不知道爲什麼這樣做,但。請記住,highgui無意成爲完整的視窗系統。順便問一下,你是否解決了這個問題? –
好吧謝謝你的幫助:)是的,它確實解決了問題:)只有一個問題我的視頻滯後很多是否有視頻實時?如同增加高斯模糊的速度一樣?謝謝 – fdh