private void button3_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { Vector3[,] val = Procedurs.Medium(openFileDialog1.FileName); Morf morf = Morf.GenerateKMean(val, 5); morf.RemoveEmptyRegions(); for (int i = 0; i < morf.regions.Count; i++) { morf.regions[i].Fill(morf.regions[i].GetAverage(val), val); } var proc = new ImageProcessing(val.GetImage()); } }
private void button7_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { Image <Rgb, float> last = null; //Image<Gray, float> flowX = null; //Image<Gray, float> flowY = null; Vector3[,] val = Procedurs.Medium(openFileDialog1.FileName); Morf morf = Morf.GenerateKMean(val, 5); morf.RemoveEmptyRegions(); List <Vector3> avrs = new List <Vector3>(); for (int i = 0; i < morf.regions.Count; i++) { avrs.Add(morf.regions[i].GetAverage(val)); } for (int i = 0; i < morf.regions.Count; i++) { morf.regions[i].Fill(avrs[i], val); } Image <Rgb, float> avr_map = new Image <Rgb, float>(val.GetImage()); ImageProcessing proc = new ImageProcessing(avr_map.Bitmap); proc.Show(); float[,] temp = new float[val.GetLength(0), val.GetLength(1)]; float[,] temp2 = new float[val.GetLength(0), val.GetLength(1)]; byte[,] b_temp = new byte[val.GetLength(0), val.GetLength(1)]; byte[,] b_temp2 = new byte[val.GetLength(0), val.GetLength(1)]; LinesTracer tracer = new LinesTracer(); List <Rectangle> cars = new List <Rectangle>(); VideoProcessig videoProcessig = new VideoProcessig(openFileDialog1.FileName, (map) => { last = new Image <Rgb, float>(map); CvInvoke.AbsDiff(last, avr_map, last); var grey = last.Convert <Gray, float>(); grey. CvInvoke.Multiply(grey, new ScalarArray(1), grey); //var binar = grey.ThresholdBinary(new Gray(0.2), new Gray(1)); return(grey.Bitmap); //val.WriteRGB(map); //Procedurs.MorfSubtract(morf, avrs, val, temp); //b_temp.ForEach(temp, (b, v) => (byte)(v > 0.2f ? 1 : 0)); //b_temp.BinaryThiken(b_temp2); //b_temp2.BinaryThiken(b_temp); //b_temp.BinaryThiken(b_temp2); //b_temp2.BinaryThiken(b_temp); //Image<Gray, Byte> image = new Image<Gray, byte>(map); ////CvInvoke.CalcOpticalFlowFarneback(last,image, flowX, flowY, 0.5, 3, 10, 3, 5, 1.5, Emgu.CV.CvEnum.OpticalflowFarnebackFlag.Default); ////CvInvoke.AccumulateSquare(flowX, flowY); ////CvInvoke.Sobel(flowY, flowX, Emgu.CV.CvEnum.DepthType.Cv32F, 1, 0); //Morf mm = Morf.GenerateBinar(b_temp); //cars.Clear(); //using (Graphics gr = Graphics.FromImage(map)) //{ // for (int i = 0; i < mm.regions.Count; i++) // { // var rect = mm.regions[i].GetSize(); // if (rect.Width * rect.Height > 1000) // { // gr.DrawRectangle(Pens.Green, rect); // cars.Add(rect); // } // } //} //tracer.TrackAndWrite(cars, ref map, 0.2f * map.Width); //return map; }); videoProcessig.Show(); } }