C# CSharp winform 使用openCvSharp 3 访问笔记本电脑自带的摄像头解决办法
由于疫情原因,放假在家没事做,故学了两个周C#,突然想试一下读取电脑摄像头网上找了一些方法,比如openCV,openCVsharp,后来选用了OpenCvSharp, 在****上找了一些安装OpenCVsharp的方法, 扯淡的是自己作为一个外行,完全不懂别人博客里说一半做一半的教程,也不知道如何学习,后来看了一点OpenCV的函数和找了一点openCvsharp的例子。
比较坑的是,一看例子的函数要么是没有定义的,要么就是定义的实例无法访问,局部变量超界了。后来经过自己修改,总算可以用了。主要有以下几个坑。
1. openCvsharp 如何引用!
首先声明,我用的是VS2017的C#,具体方法,新建Windows窗体应用
然后在工具中 如图选择NuGet程序包
接着搜索opencvsharp,在左边栏目里面勾选自己当前的项目,点击安装即可,安装完成后,opencvsharp3-AnyCpu 就会自动加载和引用到当前文件中。 那么引用后如何使用呢?
就是在需要用到该库的cs文件最顶端,使用#using opencvsharp
2.调用笔记本摄像头
使用opencvsharp 里面的函数即可,我们这次调用摄像头当前的画面,并显示出来。在主程序文件cs内,主函数写如下语句。
VideoCapture myCamer = new VideoCapture(0);// myCamer 是自己随便取一个实例的名字,括号里面写0 默认就是笔记本电脑摄像头。
static void Main()
{
VideoCapture myCamer = new VideoCapture(0);//开启摄像头
Mat frame = new Mat(); //构造一个Mat 的新实例
Cv2.WaitKey(100); // Cv2.WaitKey(100);等待100ms 相当于延时
myCamer.Read(frame); //将摄像头数据 读如frame中
Cv2.ImShow("111", frame); //调用Cv2.ImShow(“窗口名字”,一个Mat类型的图像)
Cv2.WaitKey(); // 等待键盘按下 结束程序
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
点击运行程序,即可获取摄像头的一张照片。
如果大家的也完成了,希望点个赞呀^^
如果要获取连续的摄像头图像,相当于让图片每个间隔几十毫秒显示,即可完成。即构建一个while。
下一次给大家介绍