我们如何使用OpenCV打开摄像头并获取从摄像头得到的视频流数据呢?下面,我们会使用VS和OpenCV实现该功能。
先上代码:
#include#include using namespace cv;int main() {VideoCapture capture(0); //从摄像头读入视频 Mat edges; while (1) {Mat frame; capture >> frame; // imshow("当前摄像头读取视频",frame); // waitKey(30);//延时30ms cvtColor(frame, edges, CV_BGR2GRAY); imshow("当前摄像头读取视频", frame);waitKey(30); } return 0;}
从代码中,我们可以看到,使用了一个VideoCapture类的变量数组来控制我们电脑的摄像头,其中capture(0)中的 “0”指的就是电脑的摄像头,如果我们想用外接的摄像头怎么办呢?当初我也查了些资料,最后发现只要把capture(0)中的 “0” 改成 “1”就可以实现对外接摄像头的控制。使用cvtColor()函数对摄像头的每一帧图像进行灰度化,其实就是把彩色的视频流数据变成黑白的。
接下来我们看看代码效果如何:
实时使用电脑摄像头获取视频流数据很成功!
那么我们试试外接USB摄像头看看,这里我们使用的是这个外接摄像头:
我们改一下代码,看看效果:
使用外接USB摄像头也没问题!
关注一下,一起学习吧!学习更多知识,丰富你我!
若有问题或建议请反馈到我们的邮箱:
http://www.znwkxt@
欢迎反馈!
有你我们将更加努力!
丰富知识点这里 长按二维码识别