簡體   English   中英

使用opencv進行視頻捕獲

[英]video capturing with opencv

我正在使用openCV在C中為Windows編寫應用程序。 我想從網絡攝像頭捕獲視頻並在窗口中顯示。 該應用程序幾乎完成但它無法正常工作。 我認為這是因為cvQueryFrame()alwasy返回NULL而我不知道為什么。 我嘗試在進入之前捕獲一些幀,但沒有解決問題。

編譯器沒有顯示任何錯誤。 這不是編譯問題,而是執行問題。 我一步一步地調試了它

if(!originalImg) break;

它總是跳出來的。 這就是應用程序不會繼續執行的原因。 它打開和關閉非常快。 這是代碼:

void main()
{
cvNamedWindow("Original Image", CV_WINDOW_AUTOSIZE);

while (1)
    {
    originalImg = cvQueryFrame(capture);

    if(!originalImg) break;

    cvShowImage("Original Image", originalImg);

    c = cvWaitKey(10);
    if( c == 27 ) break;
}

cvReleaseCapture(&capture);

cvDestroyWindow("Original Image");

}

讓我們看看是否有人有一些想法,可以幫助我,謝謝!

看來你還沒有打開捕獲。 在main的開頭添加:

CvCapture* capture = 0;
capture = cvCaptureFromCAM(0);

假設編譯正常(包括所有相關庫), 可能是相機未正確安裝。 你可以檢查一下你是否能夠使用網絡攝像頭(使用其他軟件)

如果編譯實際上是問題,請參考以下相關問題: https//stackoverflow.com/a/5313594/1218748

快速摘要:

重新編譯opencv_highgui,在屬性頁面的C / C ++面板中更改“Preprocesser Definitions”以包括:HAVE_VIDEOINPUT HAVE_DSHOW

還有其他好的答案提出了一些相關的優點,但我的直覺是上述解決方案可行:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM