+
+
+
+
+
+
+
+ 100 KiB
+
+
+
+
+
+
+
+
+
+ 184x184px
+
+
+
+
+
+
+
+
+
+
+
+ diff --git a/Program.cs b/Program.cs index 623efb7..9e1f450 100644 --- a/Program.cs +++ b/Program.cs @@ -6,6 +6,8 @@ using ZXing.Windows.Compatibility; using ZXing.Common; using System.Runtime.InteropServices; using System.Drawing; +using System.Net; + // using Emgu.CV.CvEnum; @@ -23,10 +25,14 @@ namespace BarcodeReaderExample camera.Set(VideoCaptureProperties.FrameWidth, 1280); camera.Set(VideoCaptureProperties.FrameHeight, 720); camera.Set(VideoCaptureProperties.Fps, 24); + if(Directory.Exists("cache")) + { + Directory.Delete("cache",true); + } - + Directory.CreateDirectory("cache"); Mat hey = new Mat("photo.png"); - + Mat[] Cached = new Mat[10]; using var rgb = new Mat(); @@ -42,6 +48,9 @@ namespace BarcodeReaderExample Mat src = Cv2.ImRead("test.png"); + + string[] files = new string[10]; + int files_index =0; while (true) { // if (!camera.Read(frame) || frame.Empty()) @@ -76,13 +85,13 @@ namespace BarcodeReaderExample } - // Mat roi = frame[new Rect((int)pos3[0], (int)pos3[1], width,heigh)]; - Mat roi = frame[new Rect((int)pos3[0],(int)pos3[1], src.Width+3, src.Height)]; + // Mat roi = frame[new Rect((int)pos3[0],(int)pos3[1], src.Width+3, src.Height)]; + Mat roi = frame[new Rect((int)pos3[0], (int)pos3[1], width,heigh)]; src.CopyTo(roi); - Console.WriteLine($"szerokość:{width}"); - Console.WriteLine($"wysokosc:{heigh}"); - Console.WriteLine($"x:{pos3[0]}"); - Console.WriteLine($"y:{pos3[1]}"); + // Console.WriteLine($"szerokość:{width}"); + // Console.WriteLine($"wysokosc:{heigh}"); + // Console.WriteLine($"x:{pos3[0]}"); + // Console.WriteLine($"y:{pos3[1]}"); // DrawLine(location); //draw red squre @@ -103,7 +112,29 @@ namespace BarcodeReaderExample Cv2.PutText(frame, result.Text, new OpenCvSharp.Point((int)(pos2[0]-pos3[0])/2+(int)pos3[0]-160, (int)(pos2[1]-pos3[1])/2+(int)pos3[1]+60), HersheyFonts.HersheySimplex, 0.8, Scalar.Black, 2); - // Console.WriteLine(result.Text); + if (!files.Contains(result.Text)) + { + files[files_index] = result.Text; + Console.WriteLine("downloading: "+result.Text); + + using (var client = new WebClient()) + { + client.DownloadFile(result.Text, "cache/"+files_index + ".png"); + // Thread.Sleep(2000); + } + Cached[files_index] = new Mat("cache/"+files_index+ ".png"); + } + else + { + try + { + + int toload = files.IndexOf(result.Text); + Mat roi2 = frame[new Rect((int)pos3[0], (int)pos3[1], Cached[toload].Width, Cached[toload].Height)]; + Cached[toload].CopyTo(roi2); + } + catch { } + } // Cv2.draw diff --git a/cache/0.png b/cache/0.png new file mode 100644 index 0000000..13139e1 --- /dev/null +++ b/cache/0.png @@ -0,0 +1,667 @@ + + +
+ + +
+
+