windows phone 实现mjpeg流视频的人脸识别
来源:互联网 发布:苗立杰wnba数据 编辑:程序博客网 时间:2024/05/17 20:51
先上图片,看看效果
首先是wp有自带的mjpeg解码功能
能输出WriteableBitmap格式,方便接下来进行图像分析
速度还行,最大也只是100多MS的延迟
接收图像方法
public void recVideo() { string sourceURL = "图片流地址"; while (true) { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri(sourceURL)); req.BeginGetResponse(new AsyncCallback(resResult), req); //Thread.Sleep(10); } }
异步调用方法
private void resResult(IAsyncResult ir) { try { HttpWebRequest req = ir.AsyncState as HttpWebRequest; WebResponse resp = req.EndGetResponse(ir); Stream stream = resp.GetResponseStream(); Dispatcher.BeginInvoke(() => { WriteableBitmap myBitmap = PictureDecoder.DecodeJpeg(stream); 这里就是自带的解码方法,一句话就行了,如果只要实现视频输出,下面图像识别就可以删掉了 image1.Source = myBitmap; #region 图像识别 var w = myBitmap.PixelWidth; var h = myBitmap.PixelHeight; if (_pixelDataGray == null || _pixelDataGray.Length != h * w) {//定义了几个数组 _pixelDataGray = new byte[w / _downsampleFactor * h / _downsampleFactor]; _pixelDataDownsampled = new byte[w / _downsampleFactor * h / _downsampleFactor]; _pixelDataGrayInt = new int[w / _downsampleFactor * h / _downsampleFactor]; _wb = new WriteableBitmap(w / _downsampleFactor, w / _downsampleFactor); }//另外写了几个类。Utils 和 FaceDetection,其中FaceDetection的检测算法是跟opencv学的 Utils.DownSample(myBitmap.Pixels, w, h, ref _pixelDataGrayInt, _downsampleFactor); Utils.ARGBToGreyScale(_pixelDataGrayInt, ref _pixelDataGray); //_pixelDataGray = e.FrameBuffer; Utils.HistogramEqualization(ref _pixelDataGray); Utils.GrayToARGB(_pixelDataGray, ref _pixelDataGrayInt); List<FaceDetection.Rectangle> faces = _detector.getFaces( _pixelDataGrayInt, w / _downsampleFactor, h / _downsampleFactor, 2f, 1.25f, 0.1f, 1, false, true); _pixelDataGrayInt.CopyTo(_wb.Pixels, 0); _wb.Invalidate();//image控件上覆盖了个 canvas控件,用来画圆圈 cnvsFaceRegions.Children.Clear(); foreach (var r in faces) { Ellipse el = new Ellipse(); TranslateTransform loc = new TranslateTransform(); loc.X = r.X * _downsampleFactor / (double)w * cnvsFaceRegions.Width; loc.Y = r.Y * _downsampleFactor / (double)w * cnvsFaceRegions.Height; el.RenderTransform = loc; el.Width = r.Width * _downsampleFactor *2; el.Height = r.Height * _downsampleFactor *2; el.Stroke = new SolidColorBrush(Colors.Red); cnvsFaceRegions.Children.Add(el); } #endregion }); } catch (Exception ex) { Dispatcher.BeginInvoke(() => sysInfo.Text = ex.Message); } }
相关类:
到我的资源下载
http://download.csdn.net/detail/cooska/4895104
- windows phone 实现mjpeg流视频的人脸识别
- 获取mjpeg视频流
- 基于嵌入式Linux的视频采集系统5--基于MJPEG编码方式的视频采集实现
- 【深度学习】人脸识别、视频中找人的实现
- windows phone:类视频动画
- Windows Phone 7 日历应用的实现
- Windows Phone 7 自定义按钮的实现
- Node+vue实现视频中的人脸识别
- 基于Emgu CV+百度人脸识别,实现视频动态 人脸抓取与识别
- 【图像识别】 Python+Opencv调用摄像头实现人脸识别并保存视频
- 视频中的人脸识别
- 人脸识别的实现
- seetaface人脸识别引擎的windows java 实现,可用于搭建人脸识别java web服务器
- windows phone:Windows Phone 的数据
- jpeglib库实现MJPEG图像的压缩与解压缩
- 阿里云服务器+树莓派+mjpeg-streamer实现外网视频监控
- Windows Phone的春天
- Windows Phone的瓷砖
- 栈帧&溢出
- NEFU要崛起——第8场
- OpenGL织梦之旅【第三章】第2节.循环显示图片
- gopherlib.py
- 给SPECsfs2008的数据画个图(图中少了个字母s)
- windows phone 实现mjpeg流视频的人脸识别
- 初识mybatis
- 3G版和Wi-Fi版iPad 2有什么区别?
- vim的折叠功能
- 求助 Exception in thread "main" java.lang.NoClassDefFoundError:
- “集群和负载均衡”等的通俗解释
- javascript 基础回顾
- 水货iPad 2功能有什么缺陷吗,能使用大陆3G网络吗?
- 餐饮经营思考(四)——市场调研