测试C#使用OpenCvSharp从摄像头获取图片

这篇具有很好参考价值的文章主要介绍了测试C#使用OpenCvSharp从摄像头获取图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  OpenCvSharp也支持获取摄像头数据,不同于之前测试AForge时使用AForge控件显示摄像头数据流并从中截图图片,OpenCvSharp中显示摄像头数据流需要周期性地从摄像头中截取图片并显示在指定控件中。本文学习C#使用OpenCvSharp从摄像头获取图片的基本方式。
  新建基于.net core的Winform项目,在Nuget包管理器中搜索并安装OpenCvSharp4和OpenCvSharp4.runtime.win,也可以单独安装OpenCvSharp4.Windows。
opencvsharp videocapture,dotnet编程,c#,OpenCvSharp,摄像头,图片
  使用OpenCvSharp中的相关函数打开摄像头需要指定摄像头编号(int类型),但暂时未找到OpenCvSharp中有什么类或函数能返回计算机中所有视频设备的带编号的设备信息,AForge的FilterInfoCollection类能枚举视频输入设备,但是只有名称和MonikerString,没有设备编号。
  百度相关文章,最终在参考文献4中找到合适的代码,主要是调用参考文献5中已经封装好的SystemDeviceEnumerator类获取本地视频输入设备及编号,主要代码如下(本文测试时将参考文献5下的所有文件都引用到了项目中,也可以通过Nuget包管理器搜索并安装Hompus.VideoInputDevices包):

using var sde = new Hompus.VideoInputDevices.SystemDeviceEnumerator();

foreach (var device in sde.ListVideoInputDevice())
{
    comboCameras.Items.Add($"{device.Value},{device.Key}");
}

opencvsharp videocapture,dotnet编程,c#,OpenCvSharp,摄像头,图片
  OpenCvSharp中使用VideoCapture类读取摄像头或者视频文件数据,如果是摄像头,则在构造函数中输入摄像头编号,如果是视频文件,则在构造函数中输入视频文件地址。
  接着调用VideoCapture类的Read函数获取一帧图像,该图像为Mat类型,需要调用OpenCvSharp.Extensions. BitmapConverter.ToBitmap函数将其转换为Bitmap对象后再使用(需要安装OpenCvSharp.Extensions包),参考文献2中使用循环周期性地从摄像头中获取图片并显示在picturebox控件中,也有文章使用后台线程周期性地读取摄像头后再使用,本文中采用timer组件,定时读取摄像头图片后显示在picturebox控件中,周期设置为1秒除以摄像头的帧率(Fps)。
  此种情况下截图也比较简单,也是调用Read函数读取一帧图片即可。
  最后调用VideoCapture类的Release函数关闭摄像头或视频文件,再调用Dispose函数释放资源。

  代码比较简单,在此不再贴出,有兴趣的可以查看参考文献2,下图为程序运行效果。
opencvsharp videocapture,dotnet编程,c#,OpenCvSharp,摄像头,图片

参考文献:
[1]https://github.com/shimat/opencvsharp
[2]https://codeantenna.com/a/JbkU23NeP3
[3]https://blog.csdn.net/qq_26351861/article/details/130370934
[4]https://stackoverflow.com/questions/19258886/how-to-get-a-list-of-available-video-capture-devices/62555468#62555468
[5]https://github.com/eNeRGy164/VideoInputDevices/tree/main文章来源地址https://www.toymoban.com/news/detail-799744.html

到了这里,关于测试C#使用OpenCvSharp从摄像头获取图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 树莓派4B使用opencv获取Camera Module 3摄像头图像(解决无法直接获取图像的问题)

    莓派4B在使用官方的Camera Module 3摄像头时,无法通过opencv直接获取到图像,具体问题表现在 opencv可以打开摄像头但是无法获取到图像信息,导致imshow等方法因无法获取图像数据进而报错 ,只能使用picamera2库进行图像的获取和和处理,对不熟悉picamera2库的同学不够友好; [INF

    2024年04月27日
    浏览(53)
  • Windows下使用QT+OpenCV完成人脸检测(获取摄像头的数据进行检测)

    Windows版本: Win10 X64 OpenCV版本: 2.4.13.6 QT版本: 5.12 OpenCV官网下载地址: ​ ​https://opencv.org​​​     目前官网OpenCV最新的版本是4.2.0 ,Windows版本的OpenCV在3.X版本后就不带X86的库,只有X64的库,如果需要X86的库,需要自己下载源码去重新编译。 由于我的QT软件在安装时没有安装

    2024年01月16日
    浏览(40)
  • VS2017环境下使用C++和OpenCV获取摄像头参数的代码实战

    本文将介绍如何在VS2017环境下使用C++和OpenCV查看摄像头参数。通过使用使用OpenCV库的相关函数,获取摄像头的帧率、宽度、高度、亮度、对比度和饱和度等参数。   首先,我们需要在代码中导入OpenCV库,以便使用OpenCV的相关函数。在C++中,可以使用以下代码导入OpenCV库: 接

    2024年02月07日
    浏览(56)
  • 解决OpenCV使用USB摄像头获取高分辨率视频低帧率、卡、果冻画面的问题

    最近制作移动设备,需要安置多个usb摄像头到电脑,踩了几个坑,记录一下解决方案。 不能使用分线器插多个usb摄像头,同一时间只能加载一个。 usb摄像头调高分辨率时,非常卡顿,视频画面像果冻一样,及不流畅 第二个情况具体描述: 摄像头支持1920*1080  60fps,opencv在

    2024年02月16日
    浏览(93)
  • C# 搜索海康威视网络摄像头

    源代码 https://download.csdn.net/download/syukugai/88299251

    2024年02月10日
    浏览(52)
  • Linux摄像头(v4l2应用)——获取摄像头一帧图像

    一.V4L2简介 V4L2(Video for Linux 2):Linux内核中视频设备中的驱动框架,对于应用层它提供了一系列的API接口,同时对于硬件层,它适配大部分的视频设备,因此通过调用V4L2的接口函数可以适配大部分的视频设备。 二、操作流程 1.打开设备 当把摄像头插入到电脑后,执行ls /

    2024年02月20日
    浏览(53)
  • 怎么获取摄像头的直播地址?

    场景: 我只是一个普通的用户,正在经营一家餐厅/农场/学校,安装了好几个摄像头,但是现在要有直播链接。 我可以把链接给需要看到视频流的人,并且分享过去的人数不受限制。 具体要怎么做呢?可以如下步骤操作~ 先确定咱们的设备是否是萤石设备/海康设备,还是其

    2024年02月06日
    浏览(75)
  • 电脑获取网络摄像头图像及调用

    目前市面上常见的摄像头大体有以下几种类型,一种是usb摄像头,一种是带wifi网络摄像头,还有一种有线网络摄像头,通过一根网线连接电脑用于传输图像。本文主要讲解下有线网络摄像头的调用配置。 这种摄像头一般有两个接口,分别是网口和电源口,接线非常简单就是

    2024年02月01日
    浏览(50)
  • ffmpeg从摄像头获取视频流

    使用FFmpeg获取本地摄像头设备 ffmpeg -list_devices true -f dshow -i dummy ffmpeg -f dshow -i video=\\\"e2eSoft iVCam\\\" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -rtsp_transport tcp -f rtsp rtsp://127.0.0.1/test ffmpeg -f dshow -i video=\\\"OBS Virtual Camera\\\" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -rtsp_transport tcp -f rtsp

    2024年02月11日
    浏览(52)
  • 海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储

    文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131679108 上一篇:没有了 下一篇:敬请期待…   Hik防爆摄像头录像,因为防爆摄像头会有对应的APP软件,与普通的网络摄像头和球机不一样,默认认为它不可以通过web网页配置,所以弄

    2024年02月16日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包