Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0a781d9cbe | ||
|
|
9fae9410fb | ||
|
|
6e230b39ba | ||
|
|
811773062e | ||
|
|
084aefbbd7 | ||
|
|
422a5ccc5d | ||
|
|
7d28a8cb7c | ||
|
|
44b817fb4b | ||
|
|
d421fcae3d | ||
|
|
67dedbb9f1 | ||
|
|
79e5162e9c | ||
|
|
c6258cd0ae |
@@ -1,2 +1,3 @@
|
||||
/bin
|
||||
/obj
|
||||
/obj
|
||||
/cache
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -22,11 +24,15 @@ namespace BarcodeReaderExample
|
||||
|
||||
camera.Set(VideoCaptureProperties.FrameWidth, 1280);
|
||||
camera.Set(VideoCaptureProperties.FrameHeight, 720);
|
||||
camera.Set(VideoCaptureProperties.Fps, 60);
|
||||
|
||||
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();
|
||||
@@ -39,8 +45,12 @@ namespace BarcodeReaderExample
|
||||
|
||||
Cv2.NamedWindow("Camera preview", WindowFlags.AutoSize);
|
||||
int photocount = 0;
|
||||
Mat src = Cv2.ImRead("test.png");
|
||||
|
||||
|
||||
|
||||
string[] files = new string[10];
|
||||
int files_index =0;
|
||||
while (true)
|
||||
{
|
||||
// if (!camera.Read(frame) || frame.Empty())
|
||||
@@ -58,7 +68,8 @@ namespace BarcodeReaderExample
|
||||
float[] pos1 = new float[2] { points[0].X, points[0].Y }; /// lewy dolny róg
|
||||
float[] pos2 = new float[2] { points[2].X, points[2].Y }; ///prawy górny róg
|
||||
float[] pos3 = new float[2] { points[1].X, points[1].Y }; ///lewy górny róg
|
||||
|
||||
int width = (int)(pos2[0] - pos3[0]);
|
||||
int heigh = (int)(pos1[1] - pos3[1]);
|
||||
// Cv2.Circle(frame, (int)pos1[0], (int)pos1[1], 5, Scalar.Red, 2);
|
||||
// Cv2.Circle(frame, (int)pos2[0], (int)pos2[1], 5, Scalar.Green, 2);
|
||||
// Cv2.Circle(frame, (int)pos3[0], (int)pos3[1], 5, Scalar.Blue, 2);
|
||||
@@ -73,7 +84,16 @@ namespace BarcodeReaderExample
|
||||
continue;
|
||||
}
|
||||
|
||||
// DrawLine(location);
|
||||
|
||||
// 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]}");
|
||||
|
||||
// DrawLine(location); //draw red squre
|
||||
|
||||
|
||||
var points1 = new List<OpenCvSharp.Point>
|
||||
@@ -88,14 +108,45 @@ namespace BarcodeReaderExample
|
||||
IEnumerable<IEnumerable<OpenCvSharp.Point>> contours = new[] { points1 };
|
||||
|
||||
|
||||
Cv2.FillPoly(frame, contours, Scalar.White);
|
||||
// Cv2.FillPoly(frame, contours, Scalar.White); // fill with white
|
||||
|
||||
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);
|
||||
|
||||
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");
|
||||
files_index++;
|
||||
}
|
||||
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);
|
||||
// Console.WriteLine("work");
|
||||
// }
|
||||
// catch { }
|
||||
}
|
||||
|
||||
|
||||
// Cv2.draw
|
||||
|
||||
// Cv2.Circle(frame, (int)(RightBottomX), (int)(RightBottomY), 5, Scalar.Green, 2);
|
||||
|
||||
//Cv2.Rectangle(frame, new Point((int)X, (int)Y), new Point ((int)Width, (int)Height), Scalar.Red, 2);
|
||||
Console.WriteLine(result.Text);
|
||||
// Console.WriteLine(result.Text);
|
||||
}
|
||||
|
||||
|
||||
@@ -106,7 +157,7 @@ namespace BarcodeReaderExample
|
||||
|
||||
|
||||
Cv2.ImShow("Camera preview", frame);
|
||||
// Thread.Sleep(1000 / 24);
|
||||
Thread.Sleep(1000 / 24);
|
||||
// Console.WriteLine("tick");
|
||||
int key = Cv2.WaitKey(1);
|
||||
if (key == 27 || key == 'q')
|
||||
|
||||
|
After Width: | Height: | Size: 193 KiB |
|
After Width: | Height: | Size: 89 KiB |
|
After Width: | Height: | Size: 100 KiB |
|
After Width: | Height: | Size: 100 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 6.1 KiB |