C# OpenCvSharp 读取rtsp流

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

目录

效果

项目

代码

下载 


效果

C# OpenCvSharp 读取rtsp流,OpenCV,C#,c#,开发语言

项目

C# OpenCvSharp 读取rtsp流,OpenCV,C#,c#,开发语言

代码

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

namespace OpenCvSharp_读取rtsp流
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        CancellationTokenSource cts;
        VideoCapture capture;

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBoxIP.Text == "" || textBoxPort.Text == "" ||
                textBoxUserName.Text == "" || textBoxPassword.Text == "")
            {
                MessageBox.Show("Please input IP, Port, User name and Password!");
                return;
            }

            String rtspUrl = string.Format("rtsp://{0}:{1}@{2}:{3}"
                , textBoxUserName.Text
                , textBoxPassword.Text
                , textBoxIP.Text
                , textBoxPort.Text
                );

            button1.Enabled = false;
            button2.Enabled = true;

            cts = new CancellationTokenSource();
            Task task = new Task(() =>
            {
                capture.Open(rtspUrl, VideoCaptureAPIs.ANY);
                if (capture.IsOpened())
                {
                    //var dsize = new System.Windows.Size(capture.FrameWidth, capture.FrameHeight);
                    Mat frame = new Mat();
                    while (true)
                    {
                        Thread.Sleep(10);
                        //判断是否被取消;
                        if (cts.Token.IsCancellationRequested)
                        {
                            pictureBox1.Image = null;
                            return;
                        }
                        //Read image
                        capture.Read(frame);
                        if (frame.Empty())
                            continue;

                        if (pictureBox1.Image != null)
                        {
                            pictureBox1.Image.Dispose();
                        }
                        pictureBox1.Image = BitmapConverter.ToBitmap(frame);
                    }
                }

            }, cts.Token);
            task.Start();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            capture = new VideoCapture();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            button2.Enabled = false;
            button1.Enabled = true;
            cts.Cancel();
            
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (capture != null)
            {
                capture.Release();
                capture.Dispose();
            }
        }
    }
}
 

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

namespace OpenCvSharp_读取rtsp流
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        CancellationTokenSource cts;
        VideoCapture capture;

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBoxIP.Text == "" || textBoxPort.Text == "" ||
                textBoxUserName.Text == "" || textBoxPassword.Text == "")
            {
                MessageBox.Show("Please input IP, Port, User name and Password!");
                return;
            }

            String rtspUrl = string.Format("rtsp://{0}:{1}@{2}:{3}"
                , textBoxUserName.Text
                , textBoxPassword.Text
                , textBoxIP.Text
                , textBoxPort.Text
                );

            button1.Enabled = false;
            button2.Enabled = true;

            cts = new CancellationTokenSource();
            Task task = new Task(() =>
            {
                capture.Open(rtspUrl, VideoCaptureAPIs.ANY);
                if (capture.IsOpened())
                {
                    //var dsize = new System.Windows.Size(capture.FrameWidth, capture.FrameHeight);
                    Mat frame = new Mat();
                    while (true)
                    {
                        Thread.Sleep(10);
                        //判断是否被取消;
                        if (cts.Token.IsCancellationRequested)
                        {
                            pictureBox1.Image = null;
                            return;
                        }
                        //Read image
                        capture.Read(frame);
                        if (frame.Empty())
                            continue;

                        if (pictureBox1.Image != null)
                        {
                            pictureBox1.Image.Dispose();
                        }
                        pictureBox1.Image = BitmapConverter.ToBitmap(frame);
                    }
                }

            }, cts.Token);
            task.Start();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            capture = new VideoCapture();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            button2.Enabled = false;
            button1.Enabled = true;
            cts.Cancel();
            
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (capture != null)
            {
                capture.Release();
                capture.Dispose();
            }
        }
    }
}

下载 

Demo下载文章来源地址https://www.toymoban.com/news/detail-634078.html

到了这里,关于C# OpenCvSharp 读取rtsp流的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【OpenCV】OpenCV (C++) 与 OpenCvSharp (C#) 之间数据通信

      OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的

    2024年03月27日
    浏览(44)
  • python+opencv读取rtsp流

    在使用yolov5做物体检测中,需要拉取视频流。分解任务第一步则是需要使用opencv读取rtsp流,只要拿到每一帧图片在进行推理显示即可。

    2024年02月09日
    浏览(34)
  • C#读取RTSP流并且录制显示视频(PictrueBox)

    下载Nuget包:EMGU.CV 引用Emgu.CV; 参考资料: https://www.cnblogs.com/LCLBook/p/16649870.html 另一种使用方法:挂载事件操作(速度稍慢) 参考数据:http://t.zoukankan.com/chengNet-p-11724429.html

    2024年02月11日
    浏览(39)
  • C#基于OpenCv(OpenCvSharp) 的 fftshift, ifftshift 函数的实现

    本文实现基于 OpenCv ( OpenCvSharp ) 的 fftshift, ifftshift 函数。 fftshift 函数将信号频谱的零频分量移动到数组中心, 本质是分别对调一三象限数据。 ifftshift完成相反的操作,本质是二四象限的数据块。 OpenCV中没有这两个函数如果使用需要自己实现。 实现代码如下:

    2024年02月14日
    浏览(38)
  • C#使用OpenCv(OpenCVSharp)图像全局二值化处理实例

    本文实例演示C#语言中如何使用OpenCv(OpenCVSharp)对图像进行全局二值化处理。 目录 图像二值化原理 函数原型 参数说明 实例 效果

    2024年02月13日
    浏览(50)
  • C#使用OpenCv(OpenCVSharp)图像局部二值化处理实例

      本文实例演示C#语言中如何使用OpenCv(OpenCVSharp)对图像进行局部二值化处理。 目录 图像二值化原理 局部二值化 自适应阈值 实例 效果

    2024年02月13日
    浏览(55)
  • C#使用OpenCv(OpenCVSharp)图像直方图均衡化处理实例

    本文实例演示C#语言中如何使用OpenCv(OpenCVSharp)对图像进行直方图均衡化处理。 直方图均衡化原理 直方图均衡化(Histogram Equalization)是一种常用的图像增强技术,用于改善图像的对比度和亮度分布。它通过重新分配图像灰度级的像素值,使得图像的直方图在灰度范围内更加

    2024年02月07日
    浏览(97)
  • OpenCvSharp (C# OpenCV) 二维码畸变矫正--基于透视变换(附源码)

        本文主要介绍如何使用OpenCvSharp中的透视变换来实现二维码的畸变矫正。     由于CSDN文章中贴二维码会导致显示失败,大家可以直接点下面链接查看图片:     C# OpenCV实现二维码畸变矫正--基于透视变换 (详细步骤 + 代码)      讲解实现步骤之前先看下效果(左边是原图

    2024年02月15日
    浏览(40)
  • OpenCvSharp (C# OpenCV) 实现扫描文本矫正应用与实现详解(附源码)

    导  读     本文主要介绍使用OpenCV对扫描文本矫正的应用实例及详细实现步骤。 背景介绍     在使用打印机或扫描仪扫描文档时,由于摆放位置差异难免造成扫描文档的倾斜。本文将使用OpenCV将倾斜的文档矫正水平并去除黑边。   实现步骤     本文只针对包含大部分文

    2024年02月16日
    浏览(56)
  • C#使用OpenCv(OpenCVSharp)图像处理实例:亮度、对比度、灰度

    本文实例演示C#语言中如何使用OpenCv(OpenCVSharp)对图像进行亮度、对比度、灰度处理。 目录 亮度和对比度原理 灰度 实例 图像亮度通俗理解便是图像的明暗程度,数字图像 f(x,y) = i(x,y) r(x, y) ,如果灰度值在[0,255]之间,则 f 值越接近0亮度越低,f 值越接近255亮度越

    2024年02月13日
    浏览(76)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包