/// <summary> /// 人脸识别结果展示 /// </summary> /// <param name="faceResult"></param> void ShowFaceDetectResult(FaceDetectInfo faceResult) { txtLog.Clear(); if (faceResult.ResultNum == 0) { AppendLogWarning("图像没有识别到人脸"); } else { AppendLogWarning("识别到人脸:{0}个", faceResult.ResultNum); for (int i = 0; i < faceResult.ResultNum; i++) { AppendLogWarning("-----------------------"); AppendLogWarning("第{0}个人脸信息(可信度:{1}):", i + 1, faceResult.Result[i].FaceProbability); AppendLog("年龄:{0}", faceResult.Result[i].Age); AppendLog("性别:{0} (可信度:{1})", faceResult.Result[i].Gender == "male" ? "男" : "女", faceResult.Result[i].GenderProbability); AppendLog("颜值:{0}", faceResult.Result[i].Beauty); AppendLog("表情:{0}", faceResult.Result[i].Expression == 0 ? "不笑" : faceResult.Result[i].Expression == 1 ? "微笑" : "大笑"); AppendLog("是否带眼镜:{0} (可信度:{1})", faceResult.Result[i].Glasses == 0 ? "无眼镜" : faceResult.Result[i].Glasses == 1 ? "普通眼镜" : "墨镜", faceResult.Result[i].GlassesProbability); AppendLog("脸型:{0}", JsonConvert.SerializeObject(faceResult.Result[i].Faceshape)); //AppendLog(JsonConvert.SerializeObject(faceResult.Result)); } } }
public bool Start(string videoSrcUrl) { if (_bIsInitial) { return(true); } _bIsInitial = true; try { if (_vlcmedia != null) { _vlcmedia.Events.StateChanged -= Events_StateChanged; _vlcmedia.Events.DurationChanged -= Events_DurationChanged; _vlcmedia.Dispose(); } _vlcmedia = Vlcfactory.CreateMedia <IMedia>(videoSrcUrl); _vlcmedia.Events.StateChanged += Events_StateChanged; _vlcmedia.Events.DurationChanged += Events_DurationChanged; // 自定义显示 _memRender = _vlcplayer.CustomRenderer; _memRender.SetFormat(new BitmapFormat(704, 576, ChromaType.RV24)); _memRender.SetCallback(delegate(Bitmap frame) { if ((frame != null) && (ReceiveFrameEvent != null)) { if (_videoPlayState) { long currentDateTime = _currentTime; Image imgd = (Bitmap)frame.Clone(); FaceDetectInfo facedet = new FaceDetectInfo(imgd, currentDateTime); //ReceiveFrameEvent(facedet); Task.Factory.StartNew(() => ReceiveFrameEvent(facedet)); } frame.Dispose(); frame = null; } }); _vlcplayer.Open(_vlcmedia); _vlcplayer.Play(); _videoPlayState = true; return(true); } catch (Exception ex) { Log4NetHelper.Instance.Error("启动视频播放Capture方法出现错误:" + ex.Message); return(false); } }
private void hikPlayer_FrameEventt(FaceDetectInfo faceimage) { if (faceimage == null || faceimage.Img == null) { return; } if (NoticeFrameEvent != null) { NoticeFrameEvent(faceimage); } else { faceimage.Dispose(); } }
private void NoticeFrameEvent(FaceDetectInfo detInfo) { Invoke((MethodInvoker) delegate() { Image oldImage = imageBox1.Image; if ((detInfo.Rects != null) && (detInfo.Rects.Count > 0)) { DrawRectangle(detInfo.Img, detInfo.Rects); } Bitmap newImage = new Bitmap(detInfo.Img, imageBox1.Size); imageBox1.Image = newImage; detInfo.Img.Dispose(); if (oldImage != null) { oldImage.Dispose(); } }); }
private void api_FrameEvent(int frameId, Bitmap image, System.Drawing.Rectangle[] facerectArray) { if (image == null) { return; } if (NoticeFrameEvent != null) { List <Rectangle> rects = null; if ((facerectArray != null) && (facerectArray.Length > 0)) { rects = new List <Rectangle>(facerectArray); } FaceDetectInfo info = new FaceDetectInfo(image, frameId, rects); NoticeFrameEvent(info); } else { image.Dispose(); } }