zoukankan      html  css  js  c++  java
  • 上位机获取Mjpeg视频流程序(C#.NET语言+AForge.NET控件)(待测试)

         最近打算学习一下AForge.NET,AForge.NET是一个专门为开发者和研究者基于C#框架设计的,这个框架提供了不同的类库和关于类库的资源,还有很多应用程序例子,包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,机器人等领域。

    这个框架由一系列的类库组成。主要包括有:

      AForge.Imaging —— 一些日常的图像处理和过滤器

      AForge.Vision —— 计算机视觉应用类库

      AForge.Neuro —— 神经网络计算库AForge.Genetic -进化算法编程库

      AForge.MachineLearning —— 机器学习类库

      AForge.Robotics —— 提供一些机器学习的工具类库 

      AForge.Video —— 一系列的视频处理类库

      AForge.Fuzzy —— 模糊推理系统类库

      AForge.Controls—— 图像,三维,图表显示控件

    我这里打算就1)基于模糊系统的自动导航、2).运动检测、3)C#网络视频传输,这三个方面进行学习。会尽快把学习心得与大家分享。

    基于网络视频传输的部分,我参考别人的代码已经写出了示例程序,如图:

    因为下位机平台目前还没有搭建,所以无法进行传输视频的测试,等以后测试了再上传测试结果。因为我这里用的程序来自网络所以也就不把程序贴上来了。我把我学习中遇到的问题和解决方法给大家说说。

    问题1:安装AForge.net之后无法找到VideoSourcePlayer控件。

    方法:在VS2008  的工具中  右键->选择项-> .NET Framerwork  ->  点击命名空间进行排序,名称一列选择  VideoSourcePlayer,确定即可。

    问题2:定时器设定的时间为多少。

    答:  为1000ms    

     1  private void timer1_Tick(object sender, EventArgs e)
     2         {
     3             // Interface
     4             IVideoSource videoSource = videoSourcePlayer.VideoSource;
     5             if (videoSource != null)
     6             {
     7                 statCount[statIndex] = videoSource.FramesReceived;
     8                 if (++statIndex >= statLength)
     9                     statIndex = 0;
    10                 if (statReady < statLength)   
    11                     statReady++;
    12                 float fps = 0;
    13                 for (int i = 0; i < statReady; i++)
    14                 {
    15                     fps += statCount[i];
    16                 }
    17                 fps /= statReady;
    18                 statCount[statIndex] = 0;
    19                 fpsLabel.Text = fps.ToString("F2") + " fps";
    20             }
    21         }       

    这段代码是用来计算刷新的帧数,首先private int[] statCount = new int[statLength];  statLength=15,用来储存已经刷新的次数。

     fps /= statReady;这个用来求刷新的平均值 ,因为时间为一秒,所以得到的结果也就是标准的刷新频率。

    问题3:?action=snapshot,?action=stream表示什么?

    答:?action=snapshot返回的是一幅静态图片,?action=stream返回的才是连续的mjpeg流。

    完整的代码大家可以从这个博客里阅读http://hi.baidu.com/lansessl/item/1e890df3e1dccf12d7ff8cab

  • 相关阅读:
    Google新闻昨晚发生全球服务中断 波及国内 狼人:
    德国"反黑客"法出炉:拥有黑客工具是非法的 狼人:
    百付宝携手瑞星 打造零风险支付平台 狼人:
    四月新增电脑病毒180万 2千万台次电脑遭攻击 狼人:
    PDF文件和Word文档面临更多网络安全威胁 狼人:
    麻省理工学生令计算机系统升级不需重启 狼人:
    nullnullIOS控件AlertView的使用
    设置源ARM中断处理_S3C2440
    软件授权码Python之道Python连接MYSQL数据库和发送邮件
    目标文件符号《深入理解计算机系统》笔记(三)链接知识【附图】
  • 原文地址:https://www.cnblogs.com/dreamfactory/p/2624889.html
Copyright © 2011-2022 走看看