最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#使用AForge實現(xiàn)調用攝像頭的示例詳解

 更新時間:2023年11月14日 09:01:24   作者:SongYuLong的博客  
AForge是一個專門為開發(fā)者和研究者基于C#框架設計的,這個框架提供了不同的類庫和關于類庫的資源,本文為大家介紹了C#使用AForge實現(xiàn)調用攝像頭的相關教程,需要的可以了解下

AForge官網(wǎng)

安裝AForge

Visual Studio 2022=>項目=>管理NuGet程序包,搜索AForge并依次安裝作者為AForge.NET的多個關聯(lián)組件。

使用AForge控件

安裝AForge組件完成后,工具箱會新增AForge控件,將VideoSourcePlayer拖拽到Form控件區(qū)域即可。

1.定義變量

private FilterInfoCollection filterInfoCollection; // 攝像頭設備集合
private VideoCaptureDevice videoCaptureDevice; // 捕獲設備源
Bitmap bmp; // 處理圖片

2.獲取PC端所有攝像頭集合

filterInfoCollection = new FilterInfoCollection(FilterCategory.VideoInputDevice);

3.設置視頻源并啟動

videoCaptureDevice = new VideoCaptureDevice(filterInfoCollection[0].MonikerString);
videoSourcePlayer1.VideoSource = videoCaptureDevice;
videoSourcePlayer1.Start();

4.獲取一幀攝像頭數(shù)據(jù)

bmp = videoSourcePlayer1.GetCurrentVideoFrame(); // 拍照

5.關閉視頻源

if (videoSourcePlayer1.VideoSource != null)
{
videoSourcePlayer1.SignalToStop();
videoSourcePlayer1.WaitForStop();
videoSourcePlayer1.VideoSource = null;
}

示例代碼

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using AForge;
using AForge.Controls;
using AForge.Video;
using AForge.Video.DirectShow;

namespace CameraDemo
{
    public partial class Form1 : Form
    {
        private FilterInfoCollection filterInfoCollection; // 攝像頭設備集合
        private VideoCaptureDevice videoCaptureDevice;  // 捕獲設備源
        Bitmap bmp; // 處理圖片

        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            // 檢測PC端所有攝像頭
            filterInfoCollection = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            MessageBox.Show("識別到:" + filterInfoCollection.Count.ToString() +"個攝像頭");

            comboBox1.Items.Add(filterInfoCollection[0].MonikerString);
        }

        private void CloseCamera()
        {
            if (videoSourcePlayer1.VideoSource != null)
            { 
                videoSourcePlayer1.SignalToStop();
                videoSourcePlayer1.WaitForStop();
                videoSourcePlayer1.VideoSource = null;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                TimeSpan now = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
                long t = Convert.ToInt64(now.TotalMilliseconds)/1000;
                bmp.Save(string.Format(@"D:\{0}.jpg", t.ToString()));
                MessageBox.Show("保存成功");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }            
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            CloseCamera();

            if (comboBox1.SelectedIndex == 0 && filterInfoCollection.Count > 0)
            {
                videoCaptureDevice = new VideoCaptureDevice(filterInfoCollection[0].MonikerString);
            }
            else if (comboBox1.SelectedIndex == 1 && filterInfoCollection.Count > 1)
            {
                videoCaptureDevice = new VideoCaptureDevice(filterInfoCollection[1].MonikerString);
            }
            else {
                MessageBox.Show("攝像頭選擇有誤");
                return;
            }

            videoSourcePlayer1.VideoSource = videoCaptureDevice;
            videoSourcePlayer1.Start();

            button1.Enabled = true;
            button2.Enabled = true;
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            CloseCamera();
        }

        /// <summary>
        /// 拍照
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            bmp = videoSourcePlayer1.GetCurrentVideoFrame(); // 拍照
            pictureBox1.Image = bmp;            
        }
    }
}

以上就是C#使用AForge實現(xiàn)調用攝像頭的示例詳解的詳細內容,更多關于C# AForge調用攝像頭的資料請關注腳本之家其它相關文章!

相關文章

  • Unity使用DoTween實現(xiàn)拋物線效果

    Unity使用DoTween實現(xiàn)拋物線效果

    這篇文章主要為大家詳細介紹了Unity使用DoTween實現(xiàn)拋物線效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C# 使用SharpZipLib生成壓縮包的實例代碼

    C# 使用SharpZipLib生成壓縮包的實例代碼

    SharpZipLib是一個C#的類庫,主要用來解壓縮Zip,GZip,BZip2,Tar等格式,是以托管程序集的方式實現(xiàn),可以方便的應用于其他的項目之中。本文通過一個實例代碼給大家介紹了C# 使用SharpZipLib生成壓縮包的方法,感興趣的朋友跟隨小編一起看看吧
    2018-09-09
  • C#自動刪除Word文檔空白行和空白頁的完整代碼

    C#自動刪除Word文檔空白行和空白頁的完整代碼

    在處理 Word 文檔時,經常會遇到空白行、空表格或空白頁的問題,這不僅影響排版美觀,還可能導致文檔頁數(shù)冗余,所以本文將介紹如何使用 Spire.Doc for .NET 在 C# 中自動刪除 Word 文檔的空白行、空表格和空白頁,需要的朋友可以參考下
    2025-08-08
  • C#實現(xiàn)Winform序在系統(tǒng)托盤顯示圖標和開機自啟動

    C#實現(xiàn)Winform序在系統(tǒng)托盤顯示圖標和開機自啟動

    這篇文章主要為大家詳細介紹了C#如何實現(xiàn)Winform序在系統(tǒng)托盤顯示圖標和開機自啟動功能,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2025-01-01
  • C#實現(xiàn)Access通用訪問類OleDbHelper完整實例

    C#實現(xiàn)Access通用訪問類OleDbHelper完整實例

    這篇文章主要介紹了C#實現(xiàn)Access通用訪問類OleDbHelper,結合完整實例形式分析了C#針對access數(shù)據(jù)庫的連接、查詢、遍歷、分頁顯示等相關操作技巧,需要的朋友可以參考下
    2017-02-02
  • C#語言async?await之迭代器工作原理示例解析

    C#語言async?await之迭代器工作原理示例解析

    這篇文章主要為大家介紹了C#語言async?await之迭代器工作原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • C#控制Excel Sheet使其自適應頁寬與列寬的方法

    C#控制Excel Sheet使其自適應頁寬與列寬的方法

    這篇文章主要介紹了C#控制Excel Sheet使其自適應頁寬與列寬的方法,涉及C#操作Excel的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • C#實現(xiàn)選擇排序

    C#實現(xiàn)選擇排序

    這篇文章介紹了C#實現(xiàn)選擇排序的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • C#中線程安全問題的調試和解決

    C#中線程安全問題的調試和解決

    在C#中,多線程編程是一種常見且強大的工具,但它帶來了線程安全的問題,本文將介紹如何調試和解決C#中的線程安全問題,并深入探討鎖機制、并發(fā)控制以及調試的最佳實踐,需要的朋友可以參考下
    2025-03-03
  • C#基于QRCode實現(xiàn)動態(tài)生成自定義二維碼圖片功能示例

    C#基于QRCode實現(xiàn)動態(tài)生成自定義二維碼圖片功能示例

    這篇文章主要介紹了C#基于QRCode實現(xiàn)動態(tài)生成自定義二維碼圖片功能,結合實例形式分析了C#使用QRCode動態(tài)生成二維碼圖片相關操作技巧,需要的朋友可以參考下
    2019-02-02

最新評論

黑山县| 罗源县| 波密县| 逊克县| 九寨沟县| 南通市| 肇庆市| 嘉黎县| 弥渡县| 东乡| 明溪县| 土默特左旗| 潼南县| 沙田区| 交口县| 梅河口市| 北海市| 新丰县| 黄冈市| 日照市| 和平县| 平邑县| 阳原县| 平山县| 高雄县| 布拖县| 肥东县| 岢岚县| 景德镇市| 柞水县| 永修县| 萨迦县| 怀化市| 福州市| 永登县| 乌拉特后旗| 常熟市| 高清| 东阳市| 洪江市| 修文县|