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 +