#C#调用摄像头的方式
本文将讲诉在C#的winform程序中如何调用摄像头:
1.调用USB摄像头
2.调用普通IP摄像头
3.通过摄像头SDK进行调用

##使用的DLL
首先给上我所使用的DLL

##调用USB摄像头
调用USB摄像头其实比较简单,就是通过读取电脑自身所拥有的设备数,再执行预览。
videoSourcePlayer是AForge中的控件。

private FilterInfoCollection videoDevices;
this.videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
if (this.videoDevices.Count > 0){VideoCaptureDevice source = new VideoCaptureDevice(this.videoDevices[0].MonikerString);this.videoSourcePlayer.SignalToStop();this.videoSourcePlayer.WaitForStop();this.videoSourcePlayer.VideoSource = source;this.videoSourcePlayer.Start();}

##调用普通IP摄像头
首先要确认HTTP方式传送的图片的地址,我用的SAMSUN地址是http://{0}/cgi-bin/video.cgi?msubmenu=jpg,还有其他的http://{0}/axis-cgi/jpg/image.cgi?camera=1
使用JPEGStream或者MJPEGStream,有用户名和密码的就加上。有了source其他的和上面USB一样。

JPEGStream source = new JPEGStream(URL);
//MJPEGStream source = new MJPEGStream(URL);
source.Login = username;
source.Password = password;
this.OpenVideoSource(source);

##通过摄像头SDK进行调用
这个调用还是很简单的,一般都是使用控件的Handle来进行预览的,我们可能会想取每一帧的图片,那么如何取得每一帧呢?因为是通过Handle来预览的所以控件中无法取得,我们需要调用摄像头SDK的获取每一帧的接口,但是这个接口是直接将图片保存到本地的,感觉巨坑有木有。不过我们还是有方法处理的。下面是我对三星摄像头的处理:

public override Bitmap CapturePicture()
{Bitmap bitmap = null;string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Templates) + @"\SAMSUNG_CapturePicture.bmp";if (File.Exists(path)){File.Delete(path);}if (SSNetSDK.XNS_DEV_SaveSnapshot(playHandle, path,0)){using (MemoryStream stream = new MemoryStream(File.ReadAllBytes(path))){bitmap = (Bitmap)Image.FromStream(stream);}File.Delete(path);}return bitmap;
}

DEMO http://download.csdn.net/detail/xujie1991618/8830347

我看到很多人问我AForge库,其实网上找一找很多的,为了方便大家我特地找了一份放云盘了
链接: https://pan.baidu.com/s/1Wkmykt00hdP1Jum2m_7k6Q 提取码: pr7m

C#调用摄像头的几种方式相关推荐

  1. 软件c#语言调用摄像头,C#调用摄像头的几种方式

    C#调用摄像头的方式 本文将讲诉在C#的winform程序中如何调用摄像头: 1.调用USB摄像头 2.调用普通IP摄像头 3.通过摄像头SDK进行调用 使用的DLL 首先给上我所使用的DLL 调用U ...

  2. 聊聊 Python 调用 JS 的几种方式,你都知道吗?

    1. 前言 日常 Web 端爬虫过程中,经常会遇到参数被加密的场景,因此,我们需要分析网页源代码 通过调式,一层层剥离出关键的 JS 代码,使用 Python 去执行这段代码,得出参数加密前后的 Py ...

  3. python中调用API的几种方式

    python中调用API的几种方式: urllib2 httplib2 pycurl requests urllib2 import urllib2, urllib github_url ='http ...

  4. Vue组件之间传值/调用方法的几种方式

    组件之间传值/调用方法的几种方式 (一)父组件向子组件传值==props 1.在父组件中使用子组件的地方绑定数据 <children :message="message"&g ...

  5. python调用js接口_最全总结!聊聊 Python 调用 JS 的几种方式

    原标题:最全总结!聊聊 Python 调用 JS 的几种方式 作者 | 星安果 来源 | AirPython 1. 前言 日常 Web 端爬虫过程中,经常会遇到参数被加密的场景,因此,我们需要分析网页 ...

  6. Python 调用 JS 的几种方式

    前言 日常 Web 端爬虫过程中,经常会遇到参数被加密的场景,因此,我们需要分析网页源代码 通过调式,一层层剥离出关键的 JS 代码,使用 Python 去执行这段代码,得出参数加密前后的 Pytho ...

  7. 客户端调用 WCF 的几种方式

    转载网络代码.版权归原作者所有..... 客户端调用WCF的几种常用的方式:1普通调用var factory = new DataContent.ServiceReference1.CustomerS ...

  8. vue 调用webservice_调用webService的几种方式

    转自:http://blog.csdn.net/u011165335/article/details/51345224 一.概览 方式1: HttpClient:可以用来调用webservie服务,也 ...

  9. mysql的调用有哪三种方式_MySQL数据库之mysql命令行中执行sql的几种方式总结

    本文主要向大家介绍了MySQL数据库之mysql命令行中执行sql的几种方式总结 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1.直接输入sql执行 MySQL> se ...

最新文章

  1. matlab矩阵方块网络着色imshow_matlab中用imshow()显示图像与图像矩阵的数据类型的关系...
  2. 题目1022:游船出租
  3. mac 下系统目录权限问题
  4. OpenGL坐标系转化之投影坐标系
  5. python实现网页登录时的rsa加密流程
  6. SpringBoot整合Editor.md实现Markdown编辑器
  7. 怎样用javascript给控件赋值,使在服务器端得到此控件的值?或怎样将前台的(或js)中的值传递到后台
  8. linux线程同步互斥说法,linux线程间的同步与互斥知识点总结
  9. 计算机二级晓云是企业人力,全国计算机二级MsOffice真题试卷wore
  10. 关于跨域的处理的几种方法的整理
  11. ViewPager和Tabhost结合,可滑动的tabhost
  12. java项目ppt介绍_Java软件工程与项目案例教程ppt模板
  13. DC域【软件分发】失败的处理手段
  14. 输出希腊字母表java
  15. 彰显互联网基因:大数据引发互联网原创综艺革新。。
  16. 银行业务系统数据库设计与实现
  17. 有零基础开始学习python的小伙伴吗?学起来难吗?
  18. javax.mail实现收发邮件
  19. stm32正常运行流程图_深度分析:主流32位单片机为什么要学STM32?-可编程逻辑-与非网...
  20. 2. 硬件基础知识学习

热门文章

  1. 虚拟与现实的距离——VR 产业链史上最全梳理收藏版本
  2. 安装Nessus工具完成对你的windows虚拟机进行扫描 生成扫描报告
  3. pytorch 车型分类代码
  4. 山东商业职业技术学院计算机考试地点,超全小地图!山东农商行考试考场考点指南详情!...
  5. 网页播放器的参数含义
  6. 基于Halcon学习的边缘提取【三】close_contour_gaps.hdev例程
  7. 指令系统的发展和改进、RICS的基本原则
  8. 2022最新windows上传ipa文件到app store的方法
  9. pytorch自定义函数实现自动梯度
  10. Spring Boot项目结构