在opencv中使用网络摄像头未显示图像

Posted

技术标签:

【中文标题】在opencv中使用网络摄像头未显示图像【英文标题】:Image not being displayed using webcam in opencv 【发布时间】:2015-06-13 08:25:46 【问题描述】:

刚开始学opencv,现在卡在一个程序里。

我正在尝试运行一个仅显示来自内置网络摄像头的视频的程序。

#include <opencv2\highgui\highgui.hpp>

int main() 
cvNamedWindow("Streaming", CV_WINDOW_AUTOSIZE);
CvCapture* capture = cvCreateCameraCapture(0);
IplImage* frame;
while (1) 
    frame = cvQueryFrame(capture);
    if (!frame) break;
    cvShowImage("Streaming", frame);
    char c = cvWaitKey(33);
    if (c == 27) break;

cvReleaseCapture(&capture);
cvDestroyWindow("Streaming");
return 0;

一切正常,没有抛出错误,但是当我运行程序时,正在打开一个名为 Streaming 的新窗口,并且我的网络摄像头灯也打开(意味着网络摄像头已启动),但尽管如此,没有显示任何视频在打开的新窗口中。

对此有什么帮助吗?我只是这方面的初学者。

提前致谢!!

【问题讨论】:

在我的机器上,这段代码运行得非常好!你有第二个摄像头来测试代码吗?或者其他使用您的网络摄像头的软件,可能是坏了。 您可能对使用C++接口感兴趣,可以在here找到一个例子。 【参考方案1】:

我建议从旧的 cv 实现迁移到来自 OpenCV 2 的新方法。

看看VideoCapture 类,它有更直观的方法。例如,您可以使用方法isOpened() 来检查您的网络摄像头是否已成功激活。

here 上还有一个很好的教程,可以帮助您了解新方法。

【讨论】:

以上是关于在opencv中使用网络摄像头未显示图像的主要内容,如果未能解决你的问题,请参考以下文章

Opencv:代码中没有错误,但网络摄像头未显示在结果中

3h精通OpenCV- 读取图像视频与网络摄像头

如何在 OpenCV 中使用网络摄像头捕获 Mat 图像的像素值

通过网络摄像头使用 OpenCV 捕获图像

从保存的图像中预测情绪(OpenCV 网络摄像头)

从网络摄像机捕获实时图像