openCV使用c#操作摄像头

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

效果如下:
openCV使用c#操作摄像头,opencv,c#,人工智能

1.创建一个winform的窗体项目(框架.NET Framework 4.7.2)
2.Nuget引入opencv的c#程序包(版本最好和我一致)
openCV使用c#操作摄像头,opencv,c#,人工智能
3.后台代码文章来源地址https://www.toymoban.com/news/detail-646907.html

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

namespace opencv读取摄像头
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Control.CheckForIllegalCrossThreadCalls = false;//取消跨线程检查
            this.timer1.Start();
        }

        private VideoCapture capture;
        private bool isopen = false;
        private bool saveImgFlag = false;
        private string filePath = "";

        private void button1_Click(object sender, EventArgs e)
        {
            capture = new VideoCapture(0);
            if (!capture.IsOpened())
            {
                MessageBox.Show("无法打开摄像头");
                return;
            }
            isopen = true;
            Thread video_th = new Thread(StartCapturing);
            video_th.IsBackground = true;
            video_th.Start();
        }

        public void StartCapturing()
        {
            Mat frame = new Mat();
            while (true)
            {
                capture.Read(frame);//读取图像帧
                if (frame.Empty())
                {
                    break;
                }
                Bitmap bitmap = BitmapConverter.ToBitmap(frame);
                if (saveImgFlag == true)
                {
                    try
                    {
                        bitmap.Save(filePath, ImageFormat.Jpeg);
                        saveImgFlag = false;
                        MessageBox.Show("保存成功!");
                    }
                    catch (Exception ex)
                    {
                    }
                }
                pictureBox1.Image = bitmap;
                pictureBox1.Refresh();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            // 设置对话框的标题
            saveFileDialog.Title = "Save Image";

            // 设置默认的文件名和文件类型过滤器
            saveFileDialog.FileName = DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss");
            saveFileDialog.Filter = "Image files (*.Png)|*.Png|Image files (*.Jpg)|*.Jpg";

            // 显示对话框并获取用户的操作结果
            DialogResult result = saveFileDialog.ShowDialog();

            if (result == DialogResult.OK)
            {
                // 用户点击了保存按钮
                filePath = saveFileDialog.FileName;
                //string filter=saveFileDialog.Filter;

                // 在这里进行保存文件的操作,例如:
                // File.WriteAllText(filePath, "Hello, world!");

                Console.WriteLine("File saved to: " + filePath);
            }
            else if (result == DialogResult.Cancel)
            {
                // 用户点击了取消按钮
                Console.WriteLine("Save cancelled");
            }
            saveImgFlag = true;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            this.label1.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
        }
    }
}

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

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

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

相关文章

  • OpenCV(视频加载与摄像头使用)

    目录 1、VideoCapture类 2、视频属性get()  3、视屏文件保存

    2024年02月12日
    浏览(53)
  • 如何使用Opencv调用电脑摄像头?

    当我们想要使用opencv对视频图像进行处理时,往往第一步便是需要调用电脑摄像头,下面博主将提供两种版本的代码(含详细注释),帮助大家学习如何使用Opencv调用电脑摄像头进行视频录制并保存: 一、C++版本 1. 从相机中读取视频 2. 从文件中读取视频 3. 保存视频 二、P

    2024年02月11日
    浏览(56)
  • 【计算机视觉 · OpenCV】使用 OpenCV 调用手机摄像头

    Droidcam 是一款可以将手机变成网络摄像头的工具,我们可以利用 Droidcam 让 OpenCV 拥有调用手机摄像头的能力。 2.1 安装 DroidCam 在手机和电脑上分别安装 DroidCam 的客户端和服务端 下载地址:https://pan.baidu.com/s/1DrBn3P1Bx-SXa4d6oziifA?pwd=gr1o 提取码:gr1o 2.2 测试连接状态 手机和电脑需

    2024年02月09日
    浏览(52)
  • 使用opencv调用外接摄像头

    当我们使用opencv调用摄像头的命令 cv2.VideoCapture(0),可能会出现下面这个错误。 [ERROR:0@0.433] global obsensor_uvc_stream_channel.cpp:156 cv::obsensor::getStreamChannelGroup Camera index out of range 表明在尝试获取摄像机流通道组时,使用的摄像机索引超出了有效范围。这通常意味着你尝试访问的摄

    2024年02月03日
    浏览(58)
  • 使用OpenCV调用摄像头和读取视频图片

    要捕获视频,你需要创建一个 VideoCapture 对象。它的参数是设备索引的名称。设备索引就是指定哪个摄像头的数字。正常情况下,内部摄像头可以通过传入0来调用,传递1来选择外置的第二个相机,以此类推。在此之后,你可以逐帧捕获。但是在最后,不要忘记释放俘虏。 直

    2024年02月08日
    浏览(53)
  • opencv基本操作二(读取视频流与保存视频、读取摄像头并保存视频)

    opencv常用 读视频函数 cv2.VideoCapture 、 cv2.VideoCapture.get 等,可以参考这里 opencv常用 写视频函数 cv2.VideoWriter 等可以参考这里 ,其中视频格式可以参考这里 videoCapture.read() 是按帧读取视频, ret,frame 是获 .read() 方法的两个返回值。其中 ret 是布尔值,如果读取帧是正确的则返回

    2023年04月08日
    浏览(100)
  • Python进阶,使用 opencv 调用摄像头进行拍照

             opencv 支持 Python 版本的模块叫作 opencv-p hon ,可直接使用 pip install opencv-python 令进行安装,但常常会因为网络等问题导致失败。推荐使用离线模式来安装 opencv 模块。 下载完安装包后,使用如下命令进行安装: D: pip install opencv

    2024年02月11日
    浏览(69)
  • 使用 MFC 和 OpenCV 实现实时摄像头视频显示

    1、引言 MFC 是一个在 Windows 平台上编写 C++ 应用程序的库,提供了丰富的用户界面功能。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,包含了丰富的图像处理和计算机视觉功能。本文将向大家展示如何将这两个库结合起来,实现一个实时显示摄像头画面的简

    2024年02月13日
    浏览(98)
  • 使用pysimplegui+opencv编写一个摄像头的播放器

    使用pysimplegui和opencv实现一个播放器,播放 摄像头的画面。 效果: 打开摄像头: 从摄像头取帧: 将帧送到窗口播放: 由于使用PySimpleGUI的Image作为播放控件,所以每一帧都要转换成图片。除了png, 好像tif也可以,我没试。 从这里也可以看出来,pysimplegui播放的效率还是有点

    2024年01月23日
    浏览(38)
  • Jetson Orin Nano 使用OpenCV调用USB摄像头

    Jetson Orin Nano 8G ubuntu 20.04 检查usb摄像头是否被识别到 或者 Jetson Orin Nano 使用OpenCV调用USB摄像头

    2024年01月21日
    浏览(70)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包