C#调用摄像头的几种方式
#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#调用摄像头的几种方式相关推荐
- 软件c#语言调用摄像头,C#调用摄像头的几种方式
C#调用摄像头的方式 本文将讲诉在C#的winform程序中如何调用摄像头: 1.调用USB摄像头 2.调用普通IP摄像头 3.通过摄像头SDK进行调用 使用的DLL 首先给上我所使用的DLL 调用U ...
- 聊聊 Python 调用 JS 的几种方式,你都知道吗?
1. 前言 日常 Web 端爬虫过程中,经常会遇到参数被加密的场景,因此,我们需要分析网页源代码 通过调式,一层层剥离出关键的 JS 代码,使用 Python 去执行这段代码,得出参数加密前后的 Py ...
- python中调用API的几种方式
python中调用API的几种方式: urllib2 httplib2 pycurl requests urllib2 import urllib2, urllib github_url ='http ...
- Vue组件之间传值/调用方法的几种方式
组件之间传值/调用方法的几种方式 (一)父组件向子组件传值==props 1.在父组件中使用子组件的地方绑定数据 <children :message="message"&g ...
- python调用js接口_最全总结!聊聊 Python 调用 JS 的几种方式
原标题:最全总结!聊聊 Python 调用 JS 的几种方式 作者 | 星安果 来源 | AirPython 1. 前言 日常 Web 端爬虫过程中,经常会遇到参数被加密的场景,因此,我们需要分析网页 ...
- Python 调用 JS 的几种方式
前言 日常 Web 端爬虫过程中,经常会遇到参数被加密的场景,因此,我们需要分析网页源代码 通过调式,一层层剥离出关键的 JS 代码,使用 Python 去执行这段代码,得出参数加密前后的 Pytho ...
- 客户端调用 WCF 的几种方式
转载网络代码.版权归原作者所有..... 客户端调用WCF的几种常用的方式:1普通调用var factory = new DataContent.ServiceReference1.CustomerS ...
- vue 调用webservice_调用webService的几种方式
转自:http://blog.csdn.net/u011165335/article/details/51345224 一.概览 方式1: HttpClient:可以用来调用webservie服务,也 ...
- mysql的调用有哪三种方式_MySQL数据库之mysql命令行中执行sql的几种方式总结
本文主要向大家介绍了MySQL数据库之mysql命令行中执行sql的几种方式总结 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1.直接输入sql执行 MySQL> se ...
最新文章
- matlab矩阵方块网络着色imshow_matlab中用imshow()显示图像与图像矩阵的数据类型的关系...
- 题目1022:游船出租
- mac 下系统目录权限问题
- OpenGL坐标系转化之投影坐标系
- python实现网页登录时的rsa加密流程
- SpringBoot整合Editor.md实现Markdown编辑器
- 怎样用javascript给控件赋值,使在服务器端得到此控件的值?或怎样将前台的(或js)中的值传递到后台
- linux线程同步互斥说法,linux线程间的同步与互斥知识点总结
- 计算机二级晓云是企业人力,全国计算机二级MsOffice真题试卷wore
- 关于跨域的处理的几种方法的整理
- ViewPager和Tabhost结合,可滑动的tabhost
- java项目ppt介绍_Java软件工程与项目案例教程ppt模板
- DC域【软件分发】失败的处理手段
- 输出希腊字母表java
- 彰显互联网基因:大数据引发互联网原创综艺革新。。
- 银行业务系统数据库设计与实现
- 有零基础开始学习python的小伙伴吗?学起来难吗?
- javax.mail实现收发邮件
- stm32正常运行流程图_深度分析:主流32位单片机为什么要学STM32?-可编程逻辑-与非网...
- 2. 硬件基础知识学习
热门文章
- 虚拟与现实的距离——VR 产业链史上最全梳理收藏版本
- 安装Nessus工具完成对你的windows虚拟机进行扫描 生成扫描报告
- pytorch 车型分类代码
- 山东商业职业技术学院计算机考试地点,超全小地图!山东农商行考试考场考点指南详情!...
- 网页播放器的参数含义
- 基于Halcon学习的边缘提取【三】close_contour_gaps.hdev例程
- 指令系统的发展和改进、RICS的基本原则
- 2022最新windows上传ipa文件到app store的方法
- pytorch自定义函数实现自动梯度
- Spring Boot项目结构