private void PhoneService_ImageReceived(object sender, ImageReceivedEventArgs e) { Image <Bgr, byte> img = new Image <Bgr, byte>(e.Width, e.Height); for (int y = 0; y < e.Height; y++) { for (int x = 0; x < e.Width; x++) { for (int ch = 0; ch < 3; ch++) { img.Data[y, x, ch] = e.ImageData[y * e.Width * 4 + x * 4 + ch]; } } } img = calibratedCamera.GetCorrectImage(img); img = img.Copy(new MCvBox2D(new PointF(320f, 240f), new SizeF(600, 400), 0)); OnImageAvailable(new ImageAvailableEventArgs { Image = img, Tick = e.Tick }); }
private void phoneService_ImageReceived(object sender, ImageReceivedEventArgs e) { Debug.WriteLine("phoneService_ImageReceived"); if (isAnalyzing == false) { isAnalyzing = true; Debug.WriteLine("开始分析"); Image <Bgr, byte> img = new Image <Bgr, byte>(e.Width, e.Height); for (int y = 0; y < e.Height; y++) { for (int x = 0; x < e.Width; x++) { for (int ch = 0; ch < 3; ch++) { img.Data[y, x, ch] = e.ImageData[y * e.Width * 4 + x * 4 + ch]; } } } Task analyzeTask = new Task(o => AnalyzeImage((Image <Bgr, byte>)o), img); analyzeTask.Start(); } }