C# winform中调用摄像头,拍摄并保存图片!

首先在NuGet中,下载AForge包.
在这里插入图片描述
把这些都添加进项目中。
1.命名空间和公共属性

using AForge.Video.DirectShow;
using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
   private FilterInfoCollection _videoDevices;//摄像设备 
    private VideoCaptureDevice _videoCapture; //捕获设备源
    private Bitmap bitmap;//处理图片

2.窗体中添加VideoSourcePlayer和PictureBox,一是调用摄像头,二是点击拍照的时候获取图像呈现在PictureBox中.

在这里插入图片描述

3.添加一个ComboBox,获取连接的摄像设备,进行选择设备操作。

在这里插入图片描述
选择ComboBox的SelectedIndexChanged事件
在事件操作时先把相机资源释放(要不在选择别的相机时,相机资源还在占用!)
ShutCamera();
CameraConn();
在这里插入图片描述

在这里插入图片描述
4,这个时候运行程序,就已经可以选择设备和调用摄像头了,
拍摄按钮
在这里插入图片描述
保存图片
在这里插入图片描述
5.在关闭窗体的时候,释放相机资源。。

大功告成!!!,哪里不对的话、欢迎讨论。。
效果图
在这里插入图片描述

你可以使用C#WinForms来调用摄像头。首先,确保你的计算机上已经安装了摄像头设备,并且已经安装了适当的驱动程序。 接下来,你可以使用`System.Windows.Forms`命名空间的`PictureBox`和`VideoCapture`类来实现这个功能。下面是一个简单的示例代码: ```csharp using System; using System.Windows.Forms; using Emgu.CV; using Emgu.CV.Structure; namespace CameraCapture { public partial class MainForm : Form { private VideoCapture capture; public MainForm() { InitializeComponent(); } private void MainForm_Load(object sender, EventArgs e) { // 初始化摄像头 capture = new VideoCapture(); // 设置图像控件作为视频捕获窗口 capture.ImageGrabbed += Capture_ImageGrabbed; // 开始捕获 capture.Start(); } private void Capture_ImageGrabbed(object sender, EventArgs e) { // 获取当前帧图像 Mat frame = new Mat(); capture.Retrieve(frame); // 在PictureBox显示图像 pictureBox.Image = frame.ToBitmap(); } private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { // 停止捕获并释放资源 capture.Stop(); capture.Dispose(); } } } ``` 在这个示例,我们创建了一个`MainForm`类,继承自`Form`,并在窗体的加载事件初始化了摄像头,并将当前帧图像显示在一个名为`pictureBox`的`PictureBox`控件。在窗体关闭事件停止捕获并释放资源。 请注意,上述示例使用了Emgu.CV库来实现摄像头调用。你可以使用NuGet包管理器来安装Emgu.CV库,并在代码引用它。 希望这个简单的示例能帮助你开始使用C# WinForms调用摄像头
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值