diff --git a/src/MayShow.csproj b/src/MayShow.csproj
index 6dacde3..f743cc1 100644
--- a/src/MayShow.csproj
+++ b/src/MayShow.csproj
@@ -51,6 +51,7 @@
+
diff --git a/src/ViewModels/MainViewModel.cs b/src/ViewModels/MainViewModel.cs
index fb2d3f7..061f896 100644
--- a/src/ViewModels/MainViewModel.cs
+++ b/src/ViewModels/MainViewModel.cs
@@ -20,6 +20,7 @@ using MayShow.Helpers;
using MayShow.Interfaces;
using MayShow.Models;
using MayShows.Helpers;
+using OpenCvSharp;
namespace MayShow.ViewModels;
@@ -516,6 +517,29 @@ class MainViewModel : BaseViewModel, IFontResolver, ICanCheckShutdown
return "report_data.json";
}
+ public void TestReceiptFinding(object f) => TestReceiptFindingImpl((ReportFile)f);
+
+ private void TestReceiptFindingImpl(ReportFile file)
+ {
+ LogInfo("Running receipt edge detection...");
+ using var src = new Mat(file.FilePath, ImreadModes.Grayscale);
+ using var dst = new Mat();
+ using var blur = new Mat();
+ using var dilated = new Mat();
+ Cv2.GaussianBlur(src, blur, new OpenCvSharp.Size(5.0, 5.0), 0.0, 0.0, BorderTypes.Constant);
+ // Cv2.Threshold(dst, dst, 160, 255, ThresholdTypes.Binary & ThresholdTypes.Otsu);
+ var kernel = Cv2.GetStructuringElement(MorphShapes.Rect, new Size(9,9));
+ Cv2.Dilate(blur, dilated, kernel);
+ Cv2.Canny(dilated, dst, 40, 60, 3);
+ using (new OpenCvSharp.Window("src image", src))
+ using (new OpenCvSharp.Window("blur image", blur))
+ using (new OpenCvSharp.Window("dilated image", dilated))
+ using (new OpenCvSharp.Window("dst image", dst))
+ {
+ Cv2.WaitKey();
+ }
+ }
+
public byte[]? GetFont(string faceName)
{
LogInfo(string.Format("Loading font {0}", faceName));
diff --git a/src/Views/MainView.axaml b/src/Views/MainView.axaml
index 3399c18..b520519 100644
--- a/src/Views/MainView.axaml
+++ b/src/Views/MainView.axaml
@@ -210,6 +210,12 @@
Open File
+