asp.net中wpf aforge获取边缘点

 

最近接触的项目,使用了大量图片和视频操作,其中wpf aforge的使用遇到很多问题。本站将慢慢和大家分享

1、获取边缘点方法:

/// <summary>
        /// 边缘点越多,图像越清晰
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public int Get边缘点数量(System.Drawing.Bitmap source)
        {
            try
            {
                AForge.Imaging.SusanCornersDetector mcd = new AForge.Imaging.SusanCornersDetector();
                List<AForge.IntPoint> corners = mcd.ProcessImage(source);
                return corners.Count();
            }
            catch
            {
                AForge.Imaging.MoravecCornersDetector mcd = new AForge.Imaging.MoravecCornersDetector();
                List<AForge.IntPoint> corners = mcd.ProcessImage(source);
                return corners.Count();
            }
        }
2、使用aforge自带的动态视频展示视频

/// <summary>
        /// 加载默认设备
        /// </summary>
        public void cameraOpen()
        {
             
            CloseCaptureDevice();
            // 设定初始视频设备 
            FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            if (videoDevices.Count > 0)
            {
                for (int i = 0; i < videoDevices.Count; i++)
                {
                    if (videoDevices[i].Name.IndexOf("YW") > -1)
                    {
                        DeviceMoniker = videoDevices[i].MonikerString;
                        break;
                    }
                }
                //DeviceMoniker = videoDevices[0]..Name.Contains("YW").MonikerString;
                // UsbVideo = new VideoCaptureDevice(videoDevices[0].MonikerString);
                // camera_Chemistry.vp.videoMonkeyName = videoDevices[0].MonikerString;
                UsbVideo = new VideoCaptureDevice(DeviceMoniker);
                camera_Chemistry.vp.videoMonkeyName = DeviceMoniker;
                //sourcePlayer.NewFrame -= new AForge.Controls.VideoSourcePlayer.NewFrameHandler(videoSourcePlayer_NewFrame);
                //sourcePlayer.NewFrame += new AForge.Controls.VideoSourcePlayer.NewFrameHandler(videoSourcePlayer_NewFrame);
                UsbVideo.VideoResolution = UsbVideo.VideoCapabilities.Where(a => a.FrameSize.Width == 640 && a.FrameSize.Height == 480).FirstOrDefault();
                //UsbVideo.SnapshotFrame += UsbVideo_SnapshotFrame;
                UsbVideo.NewFrame += UsbVideo_NewFrame; //截图
                sourcePlayer.VideoSource = UsbVideo;
               // sourcePlayer.Start();
            }
            else
            {
                //button_Play.IsEnabled = false;
                //button_Capture.IsEnabled = false;
            }
            //设置相机摄像机的属性,亮度 对比度
            GaobeijingCamera();
            this电机状态 = 1; //5
        }
         
        private void CloseCaptureDevice()
        {
            if (sourcePlayer != null && sourcePlayer.VideoSource != null)
            {
                if (sourcePlayer.IsRunning)
                {
                    sourcePlayer.SignalToStop();
                    sourcePlayer.WaitForStop();
                    sourcePlayer.Stop();
                }
                sourcePlayer.VideoSource = null;
                if (UsbVideo.ProvideSnapshots)
                {
                    // UsbVideo.SnapshotFrame -= new NewFrameEventHandler(UsbVideo_SnapshotFrame);
                }
            }
        }
得到图片:

private void UsbVideo_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            // ShowSnapshot((System.Drawing.Bitmap)eventArgs.Frame); //.Clone()
            ShowSnapshot(eventArgs);
}

时间: 2024-12-09 21:08:38

asp.net中wpf aforge获取边缘点的相关文章

asp.net中利用ajax获取动态创建表中文本框的值_实用技巧

假设现在主表为公司表(公司ID,公司名称,公司类型,公司规模),从表为部门表(部门ID,公司ID,经理,联系电话),现在一个公司有四个部门,要在同一个页面上录入公司信息以及四个部门的信息,如何动态创建部门信息录入口,以及如何获取数据存储到数据库中,请看下面的代码. 页面HTML代码及js脚本 代码 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" Codebehind="Default.

asp.net中WPF应用程序入口函数(Main函数)小结

Windows窗体应用程序的入口函数在Program.cs文件中,但WPF应用程序没有这个文件,WPF应用程序入口函数在哪里呢?手工添加一个入口函数,生成项目,出错: 原来WPF应用程序入口函数在objReleaseApp.g.cs文件中: 程序代码  代码如下 复制代码 public partial class App : System.Windows.Application {             /// <summary>     /// InitializeComponent   

asp.net中的wcf获取客户地址不得不说的事项

 代码如下 复制代码 //提供方法执行的上下文环境              OperationContext context = OperationContext.Current;              //获取传进的消息属性              MessageProperties properties = context.IncomingMessageProperties;              //获取消息发送的远程终结点IP和端口              RemoteEn

asp.net中wpf实现page跳转页面

在wpf项目中,经常遇到需要跳转窗口的功能,在以前分享一篇了 今天在分享一段代码,是通过content进行页面跳转的,这个和web的跳转就一点都不一样了. 界面: 点击menu1 和2都会跳转到Page1.xaml和 Page2.xaml 前台xaml:  代码如下 复制代码 <Window x:Class="WpfApplication3.MainWindow"         xmlns="http://schemas.microsoft.com/winfx/200

asp.net中Wpf拖拽滑动效果示例

wpf其实支持拖拽是很简单的.使用drag事件或者自定义鼠标事件都是可以实现的. 今天分享一个用鼠标的点击和up事件实现的拖拽滑动效果. 首先在xaml中定义一个ScrollViewer.  代码如下 复制代码 <Window x:Class="Wpf拖拽滑动效果.MainWindow"  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  xmlns:x="http:

asp.net中日期时间获取详细

 代码如下 复制代码 DateTime dt = DateTime.Now;  //当前时间 DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d")));  //本周周一 DateTime endWeek = startWeek.AddDays(6);  //本周周日 DateTime startMonth = dt.AddDays(1 - dt.Day);  //本月月初 DateT

asp.net中wpf 利用GifBitmapDecoder解析GIF动画文件

感谢WPF的强大封装,这一切竟然3段代码就完成了. 比如我们常见到的那个兔子揉脸的GIF:   程序运行结果:     代码则是使用BitmapDecoder类型,针对GIF动画,则需要初始化它的子类GifBitmapDecoder.而BitmapDecoder得Frames属性则包含一系列的BitmapFrame.这个类型是BitmapDecoder(和BitmapEncoder)中用到的图像帧,继承自BitmapSource,因此本质上也是一种位图类型.   XAML:     <ListB

asp.net中WPF自定义富文本显示控件

RichTextBox比较的强大,支持富文本和简单文本等,可以实现出类似Word的那样的效果. 今天自定义一个支持富文本显示的RichTextBox控件.  代码如下 复制代码 XAML代码: <UserControl x:Class="Kaitone.DetectiveHelper.UI.Controls.RichTextBox.RichboxTextShow"      xmlns="http://schemas.microsoft.com/winfx/2006/x

Asp.Net中使用Highcharts控件X轴的categories数据一多会被截断

问题描述 Asp.Net中使用Highcharts控件X轴的categories数据一多会被截断 xAxis: { tickmarkPlacement: ""on"" type: 'datetime' tickInterval: [<%=num %>] categories: [<%=lastModifyTime %>] } xAxis中 categories数据会被截断的问题怎么解决 解决方案 ASP.NET中通过WebService获取数