// Подключение к серверу Photon Chat public void Initialize() { chatClient = new ChatClient(this); ui = GetComponent <UI>(); ui.nicknameText.text = PhotonNetwork.NickName; chatAppVersion = PhotonNetwork.PhotonServerSettings.AppSettings.AppVersion; chatAppId = PhotonNetwork.PhotonServerSettings.AppSettings.AppIdChat; ui.statusText.color = Color.white; Debug.Log($"Connecting to the server using {chatAppId} , {chatAppVersion} , {PhotonNetwork.NickName}"); if (chatClient.Connect(chatAppId, chatAppVersion, new AuthenticationValues(PhotonNetwork.NickName))) { Debug.Log("Connected!"); texture2D = new Texture2D(Screen.width, Screen.height); } else { Debug.Log("Connection failed!"); } ui.chatPanel.SetActive(true); //DevVideoChat.TakeScreenshot(); _drawController = new DrawController(ui.BrushDraw, ui.ObjectDraw); _drawModeToPrefab = new Dictionary <Glossary.DrawMode, DrawShape> { { Glossary.DrawMode.Rectangle, ui.RectanglePrefab }, { Glossary.DrawMode.Circle, ui.CirclePrefab }, { Glossary.DrawMode.Triangle, ui.TrianglePrefab } }; }
private void Start() { drawController = DrawController.Instance; playerRigidbody2D = GetComponent <Rigidbody2D>(); playerTransform = GetComponent <Transform>(); playerRigidbody2D.simulated = false; //Отключение симуляции движения объекта при старте сцены }
public void Initalize() { lotteryMock = new Mock <ILottery>(MockBehavior.Strict); drawRepositoryMock = new Mock <IDrawRepository>(MockBehavior.Strict); ballotRepositoryMock = new Mock <IBallotRepository>(MockBehavior.Strict); drawController = new DrawController(lotteryMock.Object, drawRepositoryMock.Object, ballotRepositoryMock.Object); }
private void InitDraw1() { IView viewScript = InstantiateView <DrawView>("DrawCard/Prefabs/DrawView"); _control = new DrawController(); _control.DrawView = (DrawView)viewScript; _control.Start(); RegisterController(_control); }
public Screen_GameScreen(Base parent) : base(parent) { SetSize(parent.Width, parent.Height); label = new Gwen.Control.Label(this); label.Text = "GAME!!!"; label.SetPosition(Program.percentW(5), Program.percentH(5)); label.TextColor = Color.FromArgb(200, 80, 0, 250); label.Font = Program.fontLogo; img = new Gwen.Control.ImagePanel(this); galaxyImage = new Bitmap(Program.percentW(100), Program.percentH(80), PixelFormat.Format32bppArgb); DrawControl = new DrawController(galaxyImage); updateDrawing(); img.SetPosition(Program.percentW(0), Program.percentH(20)); img.SetSize(Program.percentW(100), Program.percentH(80)); //img.Clicked += new GwenEventHandler<ClickedEventArgs>(img_Clicked); img.MouseMoved += new GwenEventHandler <MovedEventArgs>(img_MouseMoved); img.MouseDown += new GwenEventHandler <ClickedEventArgs>(img_MouseDown); img.MouseUp += new GwenEventHandler <ClickedEventArgs>(img_MouseUp); Gwen.Control.Button buttonTech = new Gwen.Control.Button(this); buttonTech.Text = "Tech Tree"; buttonTech.Font = Program.fontButtonLabels; buttonTech.SetBounds(Program.percentW(80), Program.percentH(84), Program.percentW(20), Program.percentH(8)); buttonTech.Clicked += onButtonTechClick; Gwen.Control.Button buttonMenu = new Gwen.Control.Button(this); buttonMenu.Text = "Menu"; buttonMenu.Font = Program.fontButtonLabels; buttonMenu.SetBounds(Program.percentW(0), Program.percentH(0), Program.percentW(13), Program.percentH(8)); buttonMenu.Clicked += onButtonMenuClick; Gwen.Control.Button buttonSolarSystem = new Gwen.Control.Button(this); buttonSolarSystem.Text = "Solar System"; buttonSolarSystem.Font = Program.fontButtonLabels; buttonSolarSystem.SetBounds(Program.percentW(0), Program.percentH(92), Program.percentW(19), Program.percentH(8)); buttonSolarSystem.Clicked += onSolarSystemClick; Gwen.Control.Button buttonStep = new Gwen.Control.Button(this); buttonStep.Text = "Step"; buttonStep.Font = Program.fontButtonLabels; buttonStep.SetBounds(Program.percentW(90), Program.percentH(92), Program.percentW(10), Program.percentH(8)); buttonStep.Clicked += onSolarSystemClick; buttonCombat = new Gwen.Control.Button(this); buttonCombat.Text = "Combat"; buttonCombat.Font = Program.fontButtonLabels; buttonCombat.SetBounds(Program.percentW(19), Program.percentH(92), Program.percentW(18), Program.percentH(8)); buttonCombat.Clicked += onCombatClick; }
public void Index() //Unable to get default ctor { //arrange DrawController drawController = new DrawController(db, serialDb); //act ViewResult result = drawController.Index() as ViewResult; //assert Assert.IsNotNull(result); }
public void Create() { //arrange DrawController drawController = new DrawController(db, serialDb); //act ViewResult result = drawController.Create() as ViewResult; //assert Assert.IsNotNull(result); }
public Umbraco_InternShip_UnitTest() { var options = new DbContextOptionsBuilder <MvcDrawContext>() .UseInMemoryDatabase <MvcDrawContext>(Guid.NewGuid().ToString()) .Options; _context = new MvcDrawContext(options); _context.Database.EnsureCreated(); _controller = new DrawController(_context); DbInitializer.Initialize(_context); }
static void Main(string[] args) { DataRepository repository = new DataRepository(); repository.Initialize(); DrawController drawController = new DrawController(repository); drawController.Initialize(); drawController.EnterMainMenu(); }
/// <summary> /// Ищет путь от одной звездной системы до другой. (Старый метод) /// </summary> /// <param name="from">Начальная точка полета.</param> /// <param name="to">Конечная точка полета.</param> public static List <StarSystem> FindWay(StarSystem from, StarSystem to) { List <StarSystem> path = new List <StarSystem>(); if (from == null || to == null) { return(path); } StarSystem currSys = from, s, tS = null; path.Add(currSys); int breakPoint = 90; while (true) { Vector3 mainDirection = new Vector3(to.x - currSys.x, to.y - currSys.y, to.z - currSys.z); double minDistance = double.MaxValue; for (int i = 0; i < Program.Game.Galaxy.stars.Count; i++) { s = Program.Game.Galaxy.stars[i]; if (s == currSys) { continue; } Vector3 direction = new Vector3(s.x - currSys.x, s.y - currSys.y, s.z - currSys.z); double angle = mainDirection.ScalarWith(direction); double distance = DrawController.Distance(currSys, s); if (distance < minDistance && angle > 0) { minDistance = distance; tS = s; } } currSys = tS; path.Add(tS); if (path.Count > breakPoint) //Если путь не находится, тупо делаем как было) { path.Clear(); path.Add(from); path.Add(to); break; } if (tS == to) { break; } } return(path); }
// Use this for initialization void Start() { _camera = Camera.main; _vertexArr = new Dictionary <int, List <Vector3> > (); _preStatus = _status = Status.Over; _isDrawing = _isMoving = false; _drawID = _preDrawID = -1; _drawController = GetComponentInChildren <DrawController> (); _myTrans = this.transform; _parentTrans = _myTrans.parent; }
/// <summary> /// Осуществляет движение флота. /// </summary> /// <param name="time">Время галактики</param> public override void Move(double time) { if (s2 == null)//обновляем координаты флота, если во время шага он остается в своей системе { y = s1.y; z = s1.z; x = s1.x; } else if (starDistanse > 0.5)//Обновляем координаты, если флот летит. динамический рассчет дистанции нужен для равномерного движения { onWay = true; double dx = (s2.x - x) / starDistanse; double dy = (s2.y - y) / starDistanse; double dz = (s2.z - z) / starDistanse; x += dx; y += dy; z += dz; starDistanse = DrawController.Distance(this, s2); } else//Флот долетел до звезды { s1 = s2; s2 = null; starDistanse = 0; onWay = false; s1.Discovered = true; s2 = path.Next(); if (s2 == null) { path.Clear(); starDistanse = 0; onWay = false; s1.Discovered = true; } else { starDistanse = DrawController.Distance(s1, s2); } x = s1.x; y = s1.y; z = s1.z; } }
/// <summary> /// Устанавливает цель для флота. /// </summary> /// <param name="s">Звездная система</param> public void setTarget(StarSystem s) { if (s == null) { path.Clear(); s2 = null; starDistanse = 0; } else { path.CalculateWay(s1, s); s2 = path.First; starDistanse = DrawController.Distance(path.First, this); } }
public void CalculateResult() { // Figure GameObject figureGO = GameObject.FindGameObjectWithTag(Tags.Figure); Figure figure = figureGO.GetComponent <Figure>(); List <Vector3> figureSidePolygon = figure.GetVisibleSidePoligon(); List <IntPoint> figureIntPoints = ConvertVectors3ToIntPoints(figureSidePolygon); // Line GameObject drawControllerGO = GameObject.FindGameObjectWithTag(Tags.DrawController); DrawController drawController = drawControllerGO.GetComponent <DrawController>(); LineRenderer line = drawController.Line; Vector3[] lineVectorsArray = new Vector3[line.positionCount]; line.GetPositions(lineVectorsArray); List <IntPoint> lineIntPoints = ConvertVectors3ToIntPoints(lineVectorsArray); Clipper c = new Clipper(); c.AddPaths(new List <List <IntPoint> >() { figureIntPoints }, PolyType.ptSubject, true); c.AddPaths(new List <List <IntPoint> >() { lineIntPoints }, PolyType.ptClip, true); var resultPolygons = new List <List <IntPoint> >(); bool succeeded = c.Execute(ClipType.ctIntersection, resultPolygons); Debug.Log("successed: " + succeeded); if (succeeded) { foreach (var polygon in resultPolygons) { GameObject go = new GameObject(); PolygonRenderer polRenderer = go.AddComponent <PolygonRenderer>(); List <Vector3> points = ConvertIntPointsToVectors3(polygon); points.Reverse(); polRenderer.Points = points; polRenderer.Mat = Resources.Load <Material>("Polygon"); } } }
private void Awake() { if (instance == null) { instance = this; } else { if (instance != this) { Destroy(gameObject); } } DontDestroyOnLoad(gameObject); }
/// <summary> /// Расчитывает дистанции от каждой системы до каждой и заносит их в массив Distances /// </summary> public static void FillDistancesFrom(List <StarSystem> systems) { Distances = new double[systems.Count][]; for (int i = 0; i < systems.Count; i++) { Distances[i] = new double[systems.Count]; for (int j = 0; j < systems.Count; j++) { if (i == j) { Distances[i][j] = double.MaxValue; } else { Distances[i][j] = DrawController.Distance(systems[i], systems[j]); } } } }
private void Form1_Load(object sender, EventArgs e) { ActiveControl = label1; GetAllControls(this, AllControls); AllControls.Reverse(); List <Timer> tempTimers = new List <Timer>() { TimeController, AnimationController, DrawController, EngineController }; Finder.SetTimers(tempTimers); Finder.SetAllControls(AllControls); ScoreInterface.Instance.GetType(); Games = new List <Game>(); Games.Add(new LoLGame((MetroPanel)Finder.FindElementWithTag("WoWPanel1"))); Games.Add(new LoLGame((MetroPanel)Finder.FindElementWithTag("WoWPanel2"))); Games.Add(new JumperGame((MetroPanel)Finder.FindElementWithTag("JumperPanel1"))); Games.Add(new JumperGame((MetroPanel)Finder.FindElementWithTag("JumperPanel2"))); GameManager.Instance.SetGames(Games); AnimationController.Start(); DrawController.Start(); foreach (Control c in AllControls) { if (c is MetroTile) { c.Click += ChangeFocus; } } metroToggle1.Checked = true; metroComboBox1.SelectedIndex = 0; }
//int i = 0; void ProcessFrame(object sender, EventArgs e) { if (btn_pause.Checked) { return; } try { fps++; #region Get Frame if (videoDevice == null) { return; } //videoDevice.QueryFrame(); for (int i = 0; i < skipCams; i++) { cMan.getRecordedFrame(currentCam); } //videoDevice.QuerySmallFrame(); Mat frame = cMan.getRecordedFrame(currentCam); //Mat frame = videoDevice.QuerySmallFrame(); //Mat frame = videoDevice.QueryFrame(); if (frame == null || frame.IsEmpty) { GenerateVideo(); return; } frame = frame.ToImage <Bgr, byte>().Resize(640, 480, Inter.Cubic).Mat; //pbView.Image = frame.Bitmap; //return; #endregion detectedBodies = body.GetAllPersonBodies(frame); if (detectedBodies != null && detectedBodies.Length != 0) { #region Variable initialization List <Rectangle> brec = new List <Rectangle>(); List <double> distHog = new List <double>(); List <double> distHs = new List <double>(); List <double> distRgb = new List <double>(); List <bool> mtch = new List <bool>(); int index = 0; ((BodyFeatureView)flpsuspects.Controls[0]).ClearControl(); ((BodyFeatureView)flpsuspects.Controls[1]).ClearControl(); #endregion foreach (Rectangle detectedBody in detectedBodies) { #region Body Crop and Resize // Cropping image var img = frame.ToImage <Bgr, byte>(); img.ROI = detectedBody; img = img.Copy(); // Reduce rectangle size to remove background Size imgSize = img.Size; img.ROI = new Rectangle((imgSize.Width / 4), (imgSize.Height / 8), (imgSize.Width / 2), (int)(imgSize.Height / 1.5)); img = img.Copy(); img = img.Copy(); img = img.Resize(64, 128, Inter.Cubic); #endregion #region Equaulize the body // 1 //img._EqualizeHist(); // 2 YCrCb method Image <Ycc, byte> yccImage = img.Convert <Ycc, byte>(); //var channels = yccImage.Split(); //channels[0]._EqualizeHist(); //yccImage[0] = channels[0]; yccImage[0]._EqualizeHist(); img = yccImage.Convert <Bgr, byte>(); //CvInvoke.Merge(channels, yccImage); #endregion if (rbIndentification.Checked) { #region Identification // non-tracking mode bfvTarget.ClearControl(); bfvTarget.RefreshImage(img); tagetbodyImage = (img); pbView.Image = DrawController.DrawRectangle(detectedBodies, frame, Color.Yellow, 2).ToBitmap(); #endregion } else { #region Re-identification if (tagetbodyImage != null) { // Get its bodyfeatures body.AddTargetBody(body.GetAllBodyFeatures(tagetbodyImage)); tagetbodyImage = null; } // tracking mode // Can use this to display all person on side // pbBody.Image = img.ToBitmap(); if (index < 2) { ((BodyFeatureView)flpsuspects.Controls[index]).RefreshImage(img); } // Extract Features after removing background body.suspectBody = body.GetAllBodyFeatures(img); // Just for display OTHERWISE use direct method double distancHog = body.GetHogDistance(); double distanceHs = body.GetHSDistance(); double distanceRgb = body.GetRGBDistance(); if (index < 2) { ((BodyFeatureView)flpsuspects.Controls[index++]).RefreshText(distancHog, distanceRgb, distanceHs); } brec.Add(detectedBody); distHog.Add(distancHog); distHs.Add(distanceHs); distRgb.Add(distanceRgb); //bool isMatched = body.IsBodySame(distancHog, distanceHs, distanceRgb); bool isMatched = body.IsBodySame(); mtch.Add(isMatched); #endregion } } Rectangle mostMatchedBodyLocation = Rectangle.Empty; bool isSuspectFound = false; Rectangle lastSuspectPosition = new Rectangle(); if (!rbIndentification.Checked) { #region Find most matched body and its location and Verification int suspectIndexinMtch = -1; body.FindMostMatchedBody(distHog, distHs, distRgb, ref mtch); for (int i = 0; i < mtch.Count; i++) { if (mtch[i]) { mostMatchedBodyLocation = detectedBodies[i]; //When body is found using DC then Set the person verification (i.e. set the body // to track if it is lost in next frame) body.SetPersonVerification(frame, mostMatchedBodyLocation, detectedBodies); suspectIndexinMtch = i; if (isFirstTimeInNewNeighbour) { // Add suspect image everytime camera switches Debug.AddTrackText("New Body Image added"); var temp = frame.ToImage <Bgr, byte>(); temp.ROI = mostMatchedBodyLocation; body.AddTargetBody(body.GetAllBodyFeatures(temp.Copy())); isFirstTimeInNewNeighbour = false; } } } #endregion #region Track timeline if (track == null) { track = new Track(ref timeLine, new TimeInterval(DateTime.Now, DateTime.Now.AddMinutes(1))); lblStart.Text = DateTime.Now.Hour + " : " + DateTime.Now.Minute + " : " + DateTime.Now.Second; } #endregion body.VerifyPerson(frame, mostMatchedBodyLocation, detectedBodies); for (int i = 0; i < brec.Count; i++) { // suspectIndex is the index of suspect in mtch, brec if (body.IsPersonVerified() && (/*i == suspectIndexinMtch ||*/ i == body.GetVerificationPersonIndex())) { #region Suspect Verified if (body.IsPersonVerified() && !mtch[i]) { // temp if int a = 10; } // Calculating for next frame (if suspect lost in next frame) PointF[] points = body.CalculateOF(frame, brec[i], brec.ToArray(), true); #region Display found Suspect Body //DrawController.DrawCircles(frame, points); //pbView.Image = frame.Bitmap; //return; lastSuspectPosition = brec[i]; isSuspectFound = true; //double colorRatio = Math.Min(((double)body.currentVerificationNumber) / BodyController.numberOfVerificationFrames, 1); double colorRatio = body.GetVerficationConfidence(); //Debug.AddTrackText(String.Format("{0}% OF>({1}) DC>({1}))",body.GetVerficationConfidence()*100, body.IsPersonVerified()),mtch[i]); if (body.IsPersonVerified()) { frame = DrawController.DrawRectangle(brec[i], (Convert.ToInt32(distHog[i])) + " " + (Convert.ToInt32(distHs[i])) + " " + ((distRgb[i])), frame.ToImage <Bgr, byte>(), Color.Green).Mat; } else { frame = DrawController.DrawRectangle(brec[i], "Verifying " + body.GetVerficationConfidence(), frame.ToImage <Bgr, byte>(), Color.FromArgb(0, (int)((colorRatio) * 255), (int)((1 - colorRatio) * 255))).Mat; } //histogramBox1.ClearHistogram(); //histogramBox1.AddHistogram("Red",Color.Red, body.suspectBody.rgb.Item1,256, new float[] { 0f, 255f }); //histogramBox1.Refresh(); #endregion #endregion } else if (body.IsUnderVerification() && (/*i == suspectIndexinMtch ||*/ i == body.GetVerificationPersonIndex())) { #region Not Verified but matched (for less number of frames than threshold) // if person is being verified double colorRatio = body.GetVerficationConfidence(); frame = DrawController.DrawRectangle(brec[i], "Verifying " + body.GetVerficationConfidence(), frame.ToImage <Bgr, byte>(), Color.FromArgb(0, (int)((colorRatio) * 255), (int)((1 - colorRatio) * 255))).Mat; #endregion } else { #region Display bodies which is not target frame = DrawController.DrawRectangle(brec[i], (Convert.ToInt32(distHog[i])) + " " + (Convert.ToInt32(distHs[i])) + " " + ((distRgb[i])), frame.ToImage <Bgr, byte>(), Color.Red).Mat; //frame = Draw.DrawRectangle(brec[i], ((distHog[i])) + " " + ((distHs[i])) + " " + ((distRgb[i])), frame.ToImage<Bgr, byte>(), Color.Red).Mat; #endregion } } pbView.Image = frame.Bitmap; } #region If suspect not found if (track != null && !isSuspectFound) { if (!isLive) { #region Draw OF PointF[] points = body.CalculateOF(frame, lastSuspectPosition, brec.ToArray()); //Rectangle ofRect = BodyTracking.FindOuterRectangle(points); //frame = DrawController.DrawRectangle(ofRect, "Using OF", frame.ToImage<Bgr, byte>(), Color.Brown).Mat; //pbView.Image = frame.Bitmap; #endregion #region Draw person suggested by OF Rectangle ofApproxBody = body.GetOFApproxBody(); frame = DrawController.DrawRectangle(ofApproxBody, frame.ToImage <Bgr, byte>(), Color.Purple).Mat; #endregion pbView.Image = frame.Bitmap; //DrawController.DrawCircles(frame, points).Bitmap; //pbView.Image = frame.Bitmap; } } #endregion #region manage timeline Track if (track != null) { if (isSuspectFound) { track.CheckCamera(currentCam); lblStart.Text = track.TimeToString(track.camtime.startTime); lblEnd.Text = track.TimeToString(track.camtime.endTime); } else { if (track.CheckCamera(null)) { SuspectLeftFOV(); } else { lblStart.Text = track.TimeToString(track.camtime.startTime); lblEnd.Text = track.TimeToString(track.camtime.endTime); } } } #endregion #region Temporary //var image = frame.ToImage<Bgr, byte>(); //image.ROI = detectedBodies[0]; //image = image.Copy(); //image = image.Resize(64, 128, Inter.Cubic); //Point centre = new Point(image.Width / 2, image.Height / 2); ////double borderSize = 0.25; //Bgr white = new Bgr(Color.White); //// apply weighted filter //for (int r = 0; r < image.Height; r++) //{ // //if (r > (image.Height * borderSize) && r < (image.Height - (image.Height * borderSize))) // //{ // // continue; // //} // for (int c = 0; c < image.Width; c++) // { // //if (c>(image.Width * borderSize) && c<(image.Width-(image.Width*borderSize)) // // && (r > (image.Height * borderSize) && r < (image.Height - (image.Height * borderSize)))) // // continue; // Bgr org = image[r, c]; // double dist = Math.Abs((r - centre.Y) * 1.56) + Math.Abs((c - centre.X) * 3.1); // Bgr newImg = new Bgr(dist * 1.27 /*+ org.Blue*/, dist * 1.27 /*+ org.Green*/, dist * 1.27/* + org.Red*/); // if (dist < (100)) // continue; // image[r, c] = new Bgr(Color.White); // } //} //pbView.Image = image.Bitmap; // if a body detected //pbView.Image = Draw.DrawRectangle(detectedBodies, frame, Color.Green, 2).ToBitmap(); #endregion #region OD Pass //if (body.IsInOD_Door_outSide(mostMatchedBodyLocation, currentCam)) //{ // odNeighbour = currentCam.OD_Neighbour; // lastSeenOnOD_Door = true; //} //else // lastSeenOnOD_Door = false; #endregion } else { if (track != null && track.CheckCamera(null)) { SuspectLeftFOV(); } //else // lblEnd.Text = DateTime.Now.Hour + " " + DateTime.Now.Minute + " " + DateTime.Now.Second; pbView.Image = frame.Bitmap; } } catch (AccessViolationException ex) { MessageBox.Show(ex.Message); } // next here //try //{ // using (GFTTDetector detector = new GFTTDetector(1000, 0.01, 1, 3, false, 0.04)) // { // Mat img = frame.Clone(); // var keypoints = detector.Detect(img); // foreach (MKeyPoint p in keypoints) // { // CvInvoke.Circle(img, Point.Round(p.Point), 3, new Bgr(255, 0, 0).MCvScalar, 1); // } // pbView.Image = img.Bitmap; // } //} //catch (Exception ex) //{ MessageBox.Show(ex.Message); } }
void Start() { swipeController = GetComponent <SwipeController>(); drawController = GetComponent <DrawController>(); }
void ProcessFrame(object sender, EventArgs e) { try { fps++; if (videoDevice == null) { return; } for (int i = 0; i < 5; i++) { videoDevice.QueryFrame(); } Mat currentFrame = videoDevice.QueryFrame(); //Mat tempFrame; //while(true) //{ // tempFrame = videoDevice.QueryFrame(); // if (tempFrame != null) // currentFrame = tempFrame; // else // break; //} //Emgu.CV.CvInvoke.Resize(currentFrame, currentFrame, new Size(), 0.5, 0.5,Emgu.CV.CvEnum.Inter.Cubic); //CvInvoke.GaussianBlur(currentFrame, currentFrame,new Size(5,5),2); int type = 0; Rectangle[] faces = face.FindAllFaces(currentFrame, ref type); if (isExpertMode) { BeginInvoke((MethodInvoker) delegate { tbConsole.Text += "\n" + type; }); } pbView.Image = DrawController.DrawRectangle(faces, currentFrame, Color.Green, 1).ToBitmap(); if (faces.Length != 0) { // Standardize the Value (hsV) // Increase contrast //var enhanced = currentFrame.ToImage<Hsv, byte>().Copy(); //enhanced._EqualizeHist(); //enhanced._GammaCorrect(1.5d); //for (int i = 0; i < enhanced.Size.Height; i++) // for (int j = 0; j < enhanced.Size.Width; j++) // enhanced.Data[i, j, 1] = 250; var image = currentFrame.ToImage <Gray, byte>(); //var image = currentFrame.ToImage<Gray, byte>(); image.ROI = faces[0]; var faceImage = image.Copy().Resize(100, 100, Emgu.CV.CvEnum.Inter.Cubic); if (registeredImages.Count == 0) { registeredImages.Add(faceImage.Convert <Gray, Byte>()); registeredImages.Add(faceImage.Convert <Gray, Byte>()); PictureBox pb = new PictureBox(); pb.Size = new Size(50, 50); pb.Image = faceImage.ToBitmap(); pb.SizeMode = PictureBoxSizeMode.StretchImage; flpFaces.Controls.Add(pb); } else { bool isMatched = face.IsFaceMatched(faceImage, registeredImages.ToArray()); pbFace.Image = faceImage.ToBitmap(); //flpFaces.Controls.Clear(); //for(int i=1;i< registeredImages.Count;i++) //{ // PictureBox pb = new PictureBox(); // pb.Size = new Size(50, 50); // pb.Image = registeredImages[i].ToBitmap(); // pb.SizeMode = PictureBoxSizeMode.StretchImage; // flpFaces.Controls.Add(pb); //} //if(isExpertMode) // BeginInvoke((MethodInvoker)delegate { tbConsole.Text = isMatched.ToString() ; }); if (!isMatched) { registeredImages.Add(faceImage.Convert <Gray, Byte>()); PictureBox pb = new PictureBox(); pb.Size = new Size(50, 50); pb.Image = faceImage.ToBitmap(); pb.SizeMode = PictureBoxSizeMode.StretchImage; flpFaces.Controls.Add(pb); } } } } catch (Exception ex) { MessageBox.Show("--> " + ex.Message); } }
void Awake() { drawControllerScript = GameObject.Find ("DrawController").GetComponent<DrawController> (); }
void Start() { drawer = GameObject.Find("Draw Controller").GetComponent <DrawController> (); color = drawer.color; }
void ProcessFrame(object sender, EventArgs e) { //FindAverageFrameTime(); fps++; if (videoDevice == null) { return; } try { for (int i = 0; i < 10; i++) { videoDevice.QueryFrame(); } Mat currentFrame = videoDevice.QueryFrame(); //Emgu.CV.CvInvoke.Resize(currentFrame, currentFrame, new Size(), 0.5, 0.5,Emgu.CV.CvEnum.Inter.Cubic); //CvInvoke.GaussianBlur(currentFrame, currentFrame,new Size(5,5),2); int type = 0; Rectangle[] faces = face.FindAllFaces(currentFrame, ref type); if (faces.Length != 0) { var image = currentFrame.ToImage <Gray, Byte>(); var colorFace = currentFrame.ToImage <Bgr, byte>(); image.ROI = faces[0]; colorFace.ROI = faces[0]; Image <Gray, Byte> faceImage = image.Copy().Resize(100, 100, Emgu.CV.CvEnum.Inter.Cubic); double distance = 0; int personId = face.MatchedFace(faceImage, ref distance); //if (personId != -1) //{ int guess = GuessFace(personId); if (guess == -1) { // Unauthorized pbView.Image = DrawController.DrawRectangle(faces, currentFrame, Color.Red, 2).ToBitmap(); for (int i = 0; i < unauthorized.Count; i++) { if (unauthorized[i].id == personId) { return; } } unauthorized.Add(new PersonInfo(personId, "unknown", colorFace.Copy().Resize(100, 100, Emgu.CV.CvEnum.Inter.Cubic).ToBitmap())); MessageBox.Show("Unauthorized Person Detected", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else if (guess == -2) { pbView.Image = DrawController.DrawRectangle(faces[0], "Working...", currentFrame.ToImage <Bgr, byte>(), Color.Yellow, 2).ToBitmap(); } else { // Authorized string personName = face.GetPersonName(personId); pbView.Image = DrawController.DrawRectangle(faces[0], personName, currentFrame.ToImage <Bgr, Byte>(), Color.Green, 2).ToBitmap(); //BeginInvoke((MethodInvoker)delegate { tbConsole.Text += "\n" + pr.Label.ToString()+" Detected"; }); for (int i = 0; i < authorized.Count; i++) { if (authorized[i].id == personId) { return; } } authorized.Add(new PersonInfo(personId, personName, colorFace.Copy().Resize(100, 100, Emgu.CV.CvEnum.Inter.Cubic).ToBitmap())); } //} //else //{ // // Face Mismatched // pbView.Image = DrawController.DrawRectangle(faces, currentFrame, Color.Red, 2).ToBitmap(); //} BeginInvoke((MethodInvoker) delegate { tbConsole.Text = distance + " " + personId.ToString(); }); } else { pbView.Image = currentFrame.Bitmap; } } catch (Exception ex) { MessageBox.Show(ex.Message + "\n" + ex.InnerException); } }
void Start() { cont = FindObjectOfType <DrawController>(); gameObject.SetActive(true); Cursor.visible = false; }