Пример #1
0
        // POST api/values
        public IHttpActionResult Post([FromBody] string value)
        {
            try
            {
                var Ocr = new AdvancedOcr()
                {
                    CleanBackgroundNoise             = true,
                    ColorDepth                       = 4,
                    ColorSpace                       = AdvancedOcr.OcrColorSpace.Color,
                    EnhanceContrast                  = true,
                    DetectWhiteTextOnDarkBackgrounds = true,
                    RotateAndStraighten              = true,
                    Language          = IronOcr.Languages.English.OcrLanguagePack,
                    EnhanceResolution = false,
                    InputImageType    = AdvancedOcr.InputTypes.Document,
                    ReadBarCodes      = true,
                    Strategy          = AdvancedOcr.OcrStrategy.Advanced
                };

                var Results     = Ocr.ReadPdf(@"C:\\Users\\hudso\\source\\repos\\IroBarCodeTest\\IroBarCodeTest\\teste2.pdf");
                var Pages       = Results.Pages;
                var Barcodes    = Results.Barcodes;
                var FullPdfText = Results.Text;

                return(Ok(Barcodes));
            }
            catch (Exception ex)
            {
                return(BadRequest("Internal server error"));
            }
        }
Пример #2
0
        public static string GetValidateCode(Bitmap img)
        {
            Log.log.Info("Getting validateCode from image");
            OcrResult Results = null;

            try
            {
                Threshold(ref img, 100);
                var Ocr = new AdvancedOcr()
                {
                    Language = IronOcr.Languages.English.OcrLanguagePack
                };
                Results = Ocr.Read(img);
            } catch (Exception e)
            {
                MessageBox.Show("图片为空");
            }
            if (Results != null)
            {
                return(Results.Text);
            }
            else
            {
                return("");
            }
        }
Пример #3
0
        private static Question GetQuestion(Bitmap bitmap)
        {
            Question question = new Question
            {
                Bitmap = bitmap.Clone(new Rectangle(10, 250, 730, 275), bitmap.PixelFormat)
            };

            question.Bitmap.ToBlackWhite(blackWhiteConvertGradeForQuestion);
            question.Bitmap.Save(imageFilePath.Split('.')[0] + "_Q.png");
            AdvancedOcr advancedOcr = new AdvancedOcr()
            {
                Language = Turkish.OcrLanguagePack,
            };

            question.Text = advancedOcr.Read(question.Bitmap).Text;

            int indexOfQuestionMark = question.Text.IndexOf('?');

            if (indexOfQuestionMark != -1)
            {
                question.Text = question.Text.Remove(indexOfQuestionMark);
            }

            question.Text = question.Text.Replace(Environment.NewLine, " ");
            Question.ExcludeCharacterList.ForEach(str => question.Text = question.Text.Replace(str, string.Empty));
            question.Text = question.Text.TrimStart().TrimEnd().ToLower();
            Console.WriteLine(question.Text + Environment.NewLine);
            return(question);
        }
Пример #4
0
 public static string ExecuteOCR(Bitmap image)
 {
     try
     {
         var Ocr = new AdvancedOcr()
         {
             CleanBackgroundNoise             = false,
             EnhanceContrast                  = false,
             EnhanceResolution                = false,
             Language                         = IronOcr.Languages.English.OcrLanguagePack,
             Strategy                         = IronOcr.AdvancedOcr.OcrStrategy.Fast,
             ColorSpace                       = AdvancedOcr.OcrColorSpace.Color,
             DetectWhiteTextOnDarkBackgrounds = false,
             InputImageType                   = AdvancedOcr.InputTypes.Snippet,
             RotateAndStraighten              = false,
             ReadBarCodes                     = false,
             ColorDepth                       = 2
         };
         return(Ocr.Read(image).Text);
     }
     catch (Exception)
     {
         Console.WriteLine("Trial popUp, please rescan your plants.");
         return(string.Empty);
     }
 }
Пример #5
0
        public static void ConvertImageToTextIron()
        {
            var Ocr = new AdvancedOcr()
            {
                CleanBackgroundNoise             = false,
                EnhanceContrast                  = true,
                EnhanceResolution                = false,
                Strategy                         = IronOcr.AdvancedOcr.OcrStrategy.Advanced,
                ColorSpace                       = AdvancedOcr.OcrColorSpace.Color,
                DetectWhiteTextOnDarkBackgrounds = false,
                InputImageType                   = AdvancedOcr.InputTypes.Document,
                RotateAndStraighten              = false,
                ReadBarCodes                     = false,
                ColorDepth                       = 4
            };

            //Person restoredPerson = await JsonSerializer.DeserializeAsync<Person>(fs);
            //Console.WriteLine($"Name: {restoredPerson.Name}  Age: {restoredPerson.Age}");
            // Ocr.Language = IronOcr.Languages.English.OcrLanguagePack;
            Ocr.Language = new IronOcr.Languages.MultiLanguage(IronOcr.Languages.English.OcrLanguagePack, IronOcr.Languages.Russian.OcrLanguagePack);
            /*new IronOcr.Languages.MultiLanguage(IronOcr.Languages.English.OcrLanguagePack, IronOcr.Languages.Russian.OcrLanguagePack);*/
            Image img     = Clipboard.GetImage();
            var   results = Ocr.Read(img);

            Console.WriteLine(results.ToString());
            Clipboard.SetText(results.ToString());
        }
Пример #6
0
        static string GetVpnbookPassword()
        {
            Console.WriteLine("Retrieving captcha image");
            string domain     = "http://www.vpnbook.com/";
            var    scraper    = new ScraperApp.ScraperWebClient(false);
            var    strVpnbook = scraper.DownloadString(domain);
            CQ     dom        = strVpnbook;

            var imagePath = domain + dom.Find("strong:contains('Password:'******':' }, StringSplitOptions.RemoveEmptyEntries).Last().Trim();

            return(password);
        }
Пример #7
0
 private void ocrToolStripMenuItem_Click(object sender, EventArgs e)
 {
     try
     {
         CommonOpenFileDialog cofd = new CommonOpenFileDialog();
         cofd.IsFolderPicker          = false;
         cofd.AllowNonFileSystemItems = true;
         cofd.Multiselect             = false;
         if (cofd.ShowDialog() == CommonFileDialogResult.Ok)
         {
             var Ocr = new AdvancedOcr()
             {
                 Language = IronOcr.Languages.ChineseSimplified.OcrLanguagePack,
             };
             Ocr.CleanBackgroundNoise             = false;
             Ocr.DetectWhiteTextOnDarkBackgrounds = false;
             Ocr.EnhanceContrast     = false;
             Ocr.RotateAndStraighten = false;
             Ocr.Strategy            = AdvancedOcr.OcrStrategy.Fast;
             var Result = Ocr.Read(cofd.FileName);
             MessageBox.Show(Result.Text);
         }
     }
     catch (Exception exception)
     {
         MessageBox.Show(exception.Message);
     }
 }
Пример #8
0
        public string AddDocumentToFulltext(string id)
        {
            string file = SimpleServerExtensionMethods.GetFilePath(id);

            var ocr = new AdvancedOcr()
            {
                CleanBackgroundNoise             = true,
                EnhanceContrast                  = true,
                EnhanceResolution                = true,
                Language                         = IronOcr.Languages.German.OcrLanguagePack,
                Strategy                         = IronOcr.AdvancedOcr.OcrStrategy.Advanced,
                ColorSpace                       = AdvancedOcr.OcrColorSpace.Color,
                DetectWhiteTextOnDarkBackgrounds = true,
                InputImageType                   = AdvancedOcr.InputTypes.AutoDetect,
                RotateAndStraighten              = true,
                ReadBarCodes                     = false,
                ColorDepth                       = 4
            };

            var results = ocr.Read(file);

            _saveFullText(file, results.Text);

            return(results.Text);
        }
Пример #9
0
        public string GetNumbersFromBitmap(Bitmap bmp)
        {
            var Ocr = new AdvancedOcr()
            {
                CleanBackgroundNoise  = false,
                EnhanceContrast       = false,
                EnhanceResolution     = false,
                AcceptedOcrCharacters = "0123456789",
                Language   = IronOcr.Languages.English.OcrLanguagePack,
                Strategy   = IronOcr.AdvancedOcr.OcrStrategy.Advanced,
                ColorSpace = AdvancedOcr.OcrColorSpace.GrayScale,
                DetectWhiteTextOnDarkBackgrounds = true,
                InputImageType      = AdvancedOcr.InputTypes.AutoDetect,
                RotateAndStraighten = false,
                ReadBarCodes        = false,
                ColorDepth          = 0
            };

            Ocr.AcceptedOcrCharacters = "0123456789";
            var Result = Ocr.Read(bmp);

            //debug shit
            bmp.Save(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\testScreen.bmp");

            return(Result.Text);
        }
Пример #10
0
        private void ReadCroppedImage(int x, int y, int width, int height, OcrLanguage language, TextBox textBox)
        {
            var CropArea = new Rectangle(x, y, width, height);

            var advancedOcr = new AdvancedOcr()
            {
                CleanBackgroundNoise             = true,
                EnhanceContrast                  = true,
                EnhanceResolution                = true,
                Strategy                         = AdvancedOcr.OcrStrategy.Advanced,
                ColorSpace                       = AdvancedOcr.OcrColorSpace.Color,
                DetectWhiteTextOnDarkBackgrounds = true,
                InputImageType                   = AdvancedOcr.InputTypes.AutoDetect,
                RotateAndStraighten              = true,
                ReadBarCodes                     = false,
                ColorDepth                       = 4
            };

            if (language == OcrLanguage.English)
            {
                advancedOcr.Language = IronOcr.Languages.English.OcrLanguagePack;
            }

            if (language == OcrLanguage.Japanese)
            {
                advancedOcr.Language = IronOcr.Languages.Japanese.OcrLanguagePack;
            }

            var results = advancedOcr.Read(FilePath, CropArea);

            textBox.Text = results.Text;
        }
Пример #11
0
        static void Main(string[] args)
        {
            string filePath = @"C:\Users\jan.bujanowski\Downloads\lol1contr2.jpg";
            string url      = @"";
            bool   rotate   = false;
            // acceptable ironocr
            var Ocr = new AdvancedOcr()
            {
                AcceptedOcrCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.:;?!@$%&+-,-()\"'0123456789",
                CleanBackgroundNoise  = false,
                ColorDepth            = 0,
                ColorSpace            = AdvancedOcr.OcrColorSpace.Color,
                EnhanceContrast       = false,
                EnhanceResolution     = false,
                Language = IronOcr.Languages.English.OcrLanguagePack,
                Strategy = IronOcr.AdvancedOcr.OcrStrategy.Advanced,
                DetectWhiteTextOnDarkBackgrounds = false,
                InputImageType      = AdvancedOcr.InputTypes.Snippet,
                RotateAndStraighten = true,
                ReadBarCodes        = false
            };
            List <Rectangle> captchaElementAreas = new List <Rectangle>();
            var stream = WebRequest.Create(url).GetResponse().GetResponseStream();
            var bitmap = new Bitmap(stream);

            bitmap = SetContrast(bitmap, 30);
            StringBuilder sb = new StringBuilder();

            if (rotate)
            {
                bitmap.RotateFlip(RotateFlipType.Rotate180FlipNone);
                captchaElementAreas.Add(new Rectangle(0, 0, 420, 210));
                captchaElementAreas.Add(new Rectangle(620, 0, 360, 240));
                captchaElementAreas.Add(new Rectangle(320, 230, 380, 170));
                captchaElementAreas.Add(new Rectangle(0, 380, 380, 200));
                captchaElementAreas.Add(new Rectangle(690, 410, 390, 190));
            }
            else
            {
                var startY = 450;
                var width  = 460;
                var height = 200;
                captchaElementAreas.Add(new Rectangle(30, startY, width, height));
                captchaElementAreas.Add(new Rectangle(620, startY, width, height));
                captchaElementAreas.Add(new Rectangle(320, 670, width, height));
                captchaElementAreas.Add(new Rectangle(0, 870, width, height));
                captchaElementAreas.Add(new Rectangle(690, 880, width - 20, height - 20));
            }

            for (int i = 0; i < 5; i++)
            {
                var Result = Ocr.Read(bitmap, captchaElementAreas[i]);
                sb.Append(Result.Text + "-");
                Console.WriteLine(Result.Text);
            }
            File.WriteAllText(@"C:\REPOS\XboxOcr\captchainput.txt", sb.ToString());
            Console.WriteLine("koniec");
            Console.ReadLine();
        }
Пример #12
0
        private static List <Answer> GetAnswers(Bitmap bitmap, List <string> resultWordList)
        {
            Answer a = new Answer
            {
                Bitmap = bitmap.Clone(new Rectangle(85, 540, 580, 85), bitmap.PixelFormat)
            };

            a.Bitmap.ToBlackWhite(blackWhiteConvertGradeForAnswers);
            a.Bitmap.Save(imageFilePath.Split('.')[0] + "_A.png");

            Answer b = new Answer
            {
                Bitmap = bitmap.Clone(new Rectangle(85, 680, 580, 85), bitmap.PixelFormat)
            };

            b.Bitmap.ToBlackWhite(blackWhiteConvertGradeForAnswers);
            b.Bitmap.Save(imageFilePath.Split('.')[0] + "_B.png");

            Answer c = new Answer
            {
                Bitmap = bitmap.Clone(new Rectangle(85, 820, 580, 85), bitmap.PixelFormat)
            };

            c.Bitmap.ToBlackWhite(blackWhiteConvertGradeForAnswers);
            c.Bitmap.Save(imageFilePath.Split('.')[0] + "_C.png");

            List <Answer> answerList = new List <Answer>()
            {
                a, b, c
            };

            var advancedOcrForAnswers = new AdvancedOcr
            {
                Language = Turkish.OcrLanguagePack
            };
            OcrResult advancedResultForAnswers = advancedOcrForAnswers.ReadMultiThreaded(new List <Bitmap>()
            {
                a.Bitmap, b.Bitmap, c.Bitmap
            });

            a.OcrPage = advancedResultForAnswers.Pages[0];
            b.OcrPage = advancedResultForAnswers.Pages[1];
            c.OcrPage = advancedResultForAnswers.Pages[2];

            foreach (Answer answer in answerList)
            {
                if (answer.OcrPage != null && answer.OcrPage.Words != null)
                {
                    foreach (OcrWord word in answer.OcrPage.Words)
                    {
                        word.Text     = word.Text.ToLower();
                        answer.Count += resultWordList.Count(x => x == word.Text);
                    }
                }
            }
            answerList.ForEach(answer => Console.WriteLine(answer.Text + " - " + answer.Count.ToString()));
            return(answerList);
        }
        public ActionResult CodeQr(string txtQRCode)
        {
            ViewBag.txtQRCode = txtQRCode;
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(txtQRCode, QRCodeGenerator.ECCLevel.Q);
            QRCode          qrCode      = new QRCode(qrCodeData);

            System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
            imgBarCode.Height = 50;
            imgBarCode.Width  = 50;
            string uniqueId   = Guid.NewGuid().ToString("N");
            string filename   = string.Format("{0}.{1}", uniqueId, "png");
            var    serverpath = Server.MapPath(string.Format("{0}{1}", "~/doc/", filename));

            using (Bitmap bitMap = qrCode.GetGraphic(20))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    using (FileStream fs = new FileStream(serverpath, FileMode.Create, FileAccess.ReadWrite))
                    {
                        bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                        byte[] bytes = ms.ToArray();
                        fs.Write(bytes, 0, bytes.Length);
                        ViewBag.imageBytes = bytes;
                    }
                    //imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
                }
            }
            var Ocr = new AdvancedOcr()
            {
                CleanBackgroundNoise             = true,
                EnhanceContrast                  = true,
                EnhanceResolution                = true,
                Language                         = IronOcr.Languages.English.OcrLanguagePack,
                Strategy                         = IronOcr.AdvancedOcr.OcrStrategy.Advanced,
                ColorSpace                       = AdvancedOcr.OcrColorSpace.Color,
                DetectWhiteTextOnDarkBackgrounds = true,
                InputImageType                   = AdvancedOcr.InputTypes.AutoDetect,
                RotateAndStraighten              = true,
                ReadBarCodes                     = true,
                ColorDepth                       = 4
            };
            var testImage = serverpath;
            var Results   = Ocr.Read(testImage);
            var Barcodes  = Results.Barcodes.Select(b => b.Value);

            ViewBag.qrcode = string.Format("Texte : {0} Barcodes: {1}", Results.Text, String.Join(",", Barcodes));
            InformationViewModel informationViewModel = new InformationViewModel()
            {
                CodeQr      = uniqueId,
                Name        = "Stratège Takam",
                CodeQrPath  = filename,
                Title       = "Informations de retrait de la carte national d'idendité",
                Description = "Pour retirer votre coli, vous vous servirai soit du code QR soit du numéro du code "
            };

            return(View(informationViewModel));
        }
        private async Task <string> WeaponImageToString(Image img)
        {
            var result = "";

            try
            {
                using (var db = GetAdjustedDirectBitmapOfImage(img, this._brightnessAdj))
                {
                    var hashCode = db.GetHashCode();
                    if (ResultCache.TryGetValue(hashCode, out result))
                    {
                        if (!result.Empty())
                        {
                            ResultCache.ScoreHit(hashCode);
                        }
                        return(result);
                    }

                    this._logger?.SaveImage(img);
                    var img2 = db.ToBitmap();
                    this._logger?.SaveImage(img2, "adj");
                    var pixelsCoefficient = db.GetMeaningfulPixelsCoefficient;
                    if (pixelsCoefficient < 0.6 && pixelsCoefficient > 0.01)
                    {
                        await Task.Delay(1500);

                        var ocr = new AdvancedOcr
                        {
                            CleanBackgroundNoise             = true,
                            EnhanceContrast                  = true,
                            EnhanceResolution                = true,
                            Language                         = IronOcr.Languages.English.OcrLanguagePack,
                            Strategy                         = AdvancedOcr.OcrStrategy.Advanced,
                            ColorSpace                       = AdvancedOcr.OcrColorSpace.GrayScale,
                            DetectWhiteTextOnDarkBackgrounds = false,
                            InputImageType                   = AdvancedOcr.InputTypes.Snippet,
                            RotateAndStraighten              = false,
                            ReadBarCodes                     = false,
                            ColorDepth                       = 8
                        };
                        var res = ocr.Read(img2);
                        result = res.Text.ToUpper();
                        this._logger?.SaveRecognitionInfo(result);
                    }

                    ResultCache.Add(db.GetHashCode(), result);
                    ResultCache.SaveToFile(OcrCacheFile);
                }
            }
            catch
            {
                //ignore
            }

            return(result);
        }
Пример #15
0
        protected void Button3_Click(object sender, EventArgs e)
        {
            Label3.Text = " ";
            if (FileUpload1.HasFile)
            {
                string ext = System.IO.Path.GetExtension(FileUpload1.FileName);//uzantı
                if (ext != ".jpg" && ext != ".png" && ext != ".jpeg")
                {
                    Label3.Text = "Geçersiz dosya";
                    return;
                }

                string path = Server.MapPath("/image/");
                FileUpload1.SaveAs(path + FileUpload1.FileName);

                //https://ironsoftware.com/csharp/ocr/ Alıntı

                var Ocr = new AdvancedOcr()
                {
                    CleanBackgroundNoise             = true,
                    EnhanceContrast                  = true,
                    EnhanceResolution                = true,
                    Language                         = IronOcr.Languages.Turkish.OcrLanguagePack,
                    Strategy                         = IronOcr.AdvancedOcr.OcrStrategy.Advanced,
                    ColorSpace                       = AdvancedOcr.OcrColorSpace.Color,
                    DetectWhiteTextOnDarkBackgrounds = true,
                    InputImageType                   = AdvancedOcr.InputTypes.Document,
                    RotateAndStraighten              = true,
                    ReadBarCodes                     = true,
                    ColorDepth                       = 4
                };
                var Result = Ocr.Read(path + FileUpload1.FileName);
                Label3.Text = Result.Text;

                String[] kelime = Result.Text.Split(' ', '\n', '\r', '"');
                int      a      = 0;
                for (int i = 0; i < kelime.Length; i++)
                {
                    if (kelime[i] == "ISBN" || kelime[i] == "ısbn" || kelime[i] == "|SBN")
                    {
                        Label3.Text   = kelime[i + 1];
                        TextBox2.Text = kelime[i + 1];
                        a             = 1;
                    }
                }
                if (a == 0)
                {
                    Label3.Text = "ISBN bulunamadı";
                }
            }
            else
            {
                Label3.Text = "Dosya seçimi yapmadınız";
                return;
            }
        }
Пример #16
0
        public static OcrResult OcrImage(Image image)
        {
            AdvancedOcr ocr = new AdvancedOcr();

            ocr.ReadBarCodes = false;
            ocr.Strategy     = AdvancedOcr.OcrStrategy.Advanced;
            ocr.DetectWhiteTextOnDarkBackgrounds = true;
            ocr.AcceptedOcrCharacters            = acceptedCharacters;
            return(ocr.Read(image));
        }
        public MyForm()
        {
            FileContainer = new FileContainerModel();

            //CompareResult = new Dictionary<string, int>();

            InitializeComponent();

            advOcr = SetOcrAdvConfig();
        }
        private void Process_Button_Click(object sender, RoutedEventArgs e)
        {
            string str_Selected_Language;

            if (path_File == null || path_File == "" || cmb_SelectLanguage.SelectedIndex == 0)
            {
                MessageBox.Show(" File or Langauge not selected ");
            }
            else
            {
                ComboBoxItem Selected_Language = (ComboBoxItem)cmb_SelectLanguage.SelectedItem;
                str_Selected_Language = Selected_Language.Content.ToString();
                //Duration duration = new Duration(TimeSpan.FromSeconds(20));
                //DoubleAnimation doubleanimation = new DoubleAnimation(150.0, duration);
                //PBar.BeginAnimation(ProgressBar.ValueProperty, doubleanimation);

                switch (str_Selected_Language)
                {
                case "Hebrew":
                {
                    var Ocr_Hebrew = new AdvancedOcr()
                    {
                        CleanBackgroundNoise = true,
                        EnhanceContrast      = true,
                        EnhanceResolution    = true,
                        Language             = IronOcr.Languages.Hebrew.OcrLanguagePack,
                        //Language = IronOcr.Languages.English.OcrLanguagePack,
                        Strategy   = IronOcr.AdvancedOcr.OcrStrategy.Advanced,
                        ColorSpace = AdvancedOcr.OcrColorSpace.Color,
                        DetectWhiteTextOnDarkBackgrounds = true,
                        InputImageType      = AdvancedOcr.InputTypes.AutoDetect,
                        RotateAndStraighten = false,
                        ReadBarCodes        = false,
                        ColorDepth          = 4
                    }; var Result = Ocr_Hebrew.Read(path_File); txtBigText.TextAlignment = TextAlignment.Right; cls_PhoneNum.ProgressBar(PBar); txtBigText.Text = Result.Text;
                }
                break;

                case "English":
                {
                    var Ocr_English = new AutoOcr()
                    {
                        Language = IronOcr.Languages.English.OcrLanguagePack,
                    };
                    var Result = Ocr_English.Read(path_File);
                    txtBigText.TextAlignment = TextAlignment.Left; txtBigText.Text = Result.Text;
                }
                break;
                }
                cls_PhoneNum.text = txtBigText.Text;    txtPhones.Text = cls_PhoneNum.Digits(txtBigText.Text);
            }
        }
Пример #19
0
        static void Main(string[] args)
        {
            string imgPath = "";

            //=== 電話號碼圖片 ===
            var Ocr = new AdvancedOcr()
            {
                CleanBackgroundNoise             = false,
                EnhanceContrast                  = true,
                EnhanceResolution                = false,
                Language                         = IronOcr.Languages.English.OcrLanguagePack,
                Strategy                         = IronOcr.AdvancedOcr.OcrStrategy.Advanced,
                ColorSpace                       = AdvancedOcr.OcrColorSpace.Color,
                DetectWhiteTextOnDarkBackgrounds = false,
                InputImageType                   = AdvancedOcr.InputTypes.AutoDetect,
                RotateAndStraighten              = false,
                ReadBarCodes                     = false,
                ColorDepth                       = 0
            };

            imgPath = "../../img/image1.gif"; //因為執行檔EXE在BIN底下,所以相對的圖檔要這樣寫
            Console.Write(Path.GetFileName(imgPath) + " text is : ");
            Console.WriteLine(Ocr.Read(imgPath).Text);

            //=== 中文地址圖片 ===
            Ocr.EnhanceContrast   = false;
            Ocr.EnhanceResolution = true;
            Ocr.Language          = IronOcr.Languages.ChineseTraditional.OcrLanguagePack;

            imgPath = "../../img/image2.gif";
            Console.Write(Path.GetFileName(imgPath) + " text is : ");
            Console.WriteLine(Ocr.Read(imgPath).Text);

            //=== 驗證碼圖片 ===
            Ocr.CleanBackgroundNoise = true;
            Ocr.EnhanceContrast      = true;
            Ocr.EnhanceResolution    = true;
            Ocr.Language             = IronOcr.Languages.English.OcrLanguagePack;
            Ocr.InputImageType       = AdvancedOcr.InputTypes.Snippet;
            Ocr.RotateAndStraighten  = true;
            Ocr.ColorDepth           = 4;

            imgPath = "../../img/image3.png";
            Console.Write(Path.GetFileName(imgPath) + " text is : ");
            Console.WriteLine(Ocr.Read(imgPath).Text);

            Console.ReadKey();
        }
 private void AdvancedOcrInit()
 {
     OCR = new AdvancedOcr
     {
         CleanBackgroundNoise             = true,
         EnhanceContrast                  = true,
         EnhanceResolution                = true,
         Language                         = IronOcr.Languages.Russian.OcrLanguagePack,
         Strategy                         = AdvancedOcr.OcrStrategy.Advanced,
         ColorSpace                       = AdvancedOcr.OcrColorSpace.GrayScale,
         DetectWhiteTextOnDarkBackgrounds = false,
         InputImageType                   = AdvancedOcr.InputTypes.Snippet,
         RotateAndStraighten              = false,
         ReadBarCodes                     = false,
         ColorDepth                       = 4
     };
 }
Пример #21
0
        private void OcrScan()
        {
            AdvancedOcr  advancedOcr  = new AdvancedOcr();
            DialogResult dialogResult = ofs_Ocr.ShowDialog();

            if (dialogResult == DialogResult.OK)
            {
                var          ocrResult            = advancedOcr.Read(ImageFilePath: ofs_Ocr.FileName);
                DialogResult saveFileDialogResult = sfd_Text.ShowDialog();
                if (saveFileDialogResult == DialogResult.OK)
                {
                    using (StreamWriter streamWriter = new StreamWriter(sfd_Text.FileName))
                    {
                        streamWriter.Write(ocrResult);
                    }
                }
            }
        }
Пример #22
0
        private static Boolean checkErrorMessage(string imagePath)
        {
            Boolean hasError = false;

            /*
             * Console.WriteLine("Checking for error messages...");
             * AutoOcr Ocr = new AutoOcr();
             * OcrResult result = Ocr.Read(imagePath);
             * Console.WriteLine("Result:");
             * Console.WriteLine(result.Text);
             */

            AdvancedOcr OcrAdvanced = new AdvancedOcr()
            {
                CleanBackgroundNoise             = false,
                EnhanceContrast                  = false,
                EnhanceResolution                = false,
                Language                         = IronOcr.Languages.English.OcrLanguagePack,
                Strategy                         = IronOcr.AdvancedOcr.OcrStrategy.Advanced,
                ColorSpace                       = AdvancedOcr.OcrColorSpace.Color,
                DetectWhiteTextOnDarkBackgrounds = true,
                InputImageType                   = AdvancedOcr.InputTypes.AutoDetect,
                RotateAndStraighten              = false,
                ReadBarCodes                     = false,
                ColorDepth                       = 4
            };
            OcrResult result = OcrAdvanced.Read(imagePath);

            Console.WriteLine(result.Text);

            String[] errorTerms = new string[] { "File", "Edit", "Home", "Tools" };
            String   resultStr  = result.Text;

            foreach (String badTerm in errorTerms)
            {
                if (resultStr.Contains(badTerm))
                {
                    Console.WriteLine("detected error message with term: " + badTerm);
                    hasError = true;
                }
            }

            return(hasError);
        }
Пример #23
0
        private static AdvancedOcr SetAdvOcrConfigs()
        {
            var advOcr = new AdvancedOcr
            {
                CleanBackgroundNoise             = false,
                ColorDepth                       = 4,
                ColorSpace                       = AdvancedOcr.OcrColorSpace.Color,
                EnhanceContrast                  = true,
                DetectWhiteTextOnDarkBackgrounds = true,
                RotateAndStraighten              = true, // CPU/GPU intensive
                Language          = IronOcr.Languages.English.OcrLanguagePack,
                EnhanceResolution = true,
                InputImageType    = AdvancedOcr.InputTypes.Document,
                ReadBarCodes      = false,
                Strategy          = AdvancedOcr.OcrStrategy.Advanced
            };

            return(advOcr);
        }
Пример #24
0
        private AdvancedOcr SetOcrAdvConfig()
        {
            AdvancedOcr advOcr = new AdvancedOcr()
            {
                CleanBackgroundNoise             = false,
                ColorDepth                       = 4,
                ColorSpace                       = AdvancedOcr.OcrColorSpace.Color,
                EnhanceContrast                  = false,
                DetectWhiteTextOnDarkBackgrounds = false,
                RotateAndStraighten              = false,
                Language          = IronOcr.Languages.English.OcrLanguagePack,
                EnhanceResolution = false,
                InputImageType    = AdvancedOcr.InputTypes.Document,
                ReadBarCodes      = true,
                Strategy          = AdvancedOcr.OcrStrategy.Fast
            };

            return(advOcr);
        }
Пример #25
0
        OcrResult DoAdvancedOcr(Bitmap bitmap)
        {
            var Ocr = new AdvancedOcr()
            {
                CleanBackgroundNoise             = true,
                EnhanceContrast                  = true,
                EnhanceResolution                = true,
                Language                         = IronOcr.Languages.English.OcrLanguagePack,
                Strategy                         = IronOcr.AdvancedOcr.OcrStrategy.Advanced,
                ColorSpace                       = AdvancedOcr.OcrColorSpace.GrayScale,
                DetectWhiteTextOnDarkBackgrounds = false,
                InputImageType                   = AdvancedOcr.InputTypes.AutoDetect,
                RotateAndStraighten              = false,
                ReadBarCodes                     = false,
                ColorDepth                       = 4
            };

            return(Ocr.Read(bitmap));
        }
Пример #26
0
        private AdvancedOcr SetupOcrAnalyzer()
        {
            var advancedOcr = new AdvancedOcr()
            {
                CleanBackgroundNoise             = true,
                EnhanceContrast                  = true,
                EnhanceResolution                = true,
                Language                         = German.OcrLanguagePack,
                Strategy                         = AdvancedOcr.OcrStrategy.Advanced,
                ColorSpace                       = AdvancedOcr.OcrColorSpace.Color,
                DetectWhiteTextOnDarkBackgrounds = true,
                InputImageType                   = AdvancedOcr.InputTypes.AutoDetect,
                RotateAndStraighten              = true,
                ReadBarCodes                     = true,
                ColorDepth                       = 4,
            };

            return(advancedOcr);
        }
Пример #27
0
        public Parser()
        {
            _ocr = new AdvancedOcr {
                CleanBackgroundNoise = true,
                EnhanceContrast      = true,
                EnhanceResolution    = true,
                Language             = English.OcrLanguagePack,
                Strategy             = AdvancedOcr.OcrStrategy.Advanced,
                ColorSpace           = AdvancedOcr.OcrColorSpace.Color,
                InputImageType       = AdvancedOcr.InputTypes.AutoDetect,
                RotateAndStraighten  = true,
                ColorDepth           = 4
            };

            _path           = $@"{Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)}\Lankhorst-Slips";
            _settingsPath   = $@"{_path}\settings.json";
            _logPath        = $@"{_path}\logs.txt";
            _duplicatesPath = $@"{_path}\duplicates";
            GatherSettings();
        }
        private static void TestScannedPdf(string currentDir)
        {
            AdvancedOcr Ocr = new AdvancedOcr()
            {
                CleanBackgroundNoise             = false,
                ColorDepth                       = 4,
                ColorSpace                       = AdvancedOcr.OcrColorSpace.Color,
                EnhanceContrast                  = false,
                DetectWhiteTextOnDarkBackgrounds = false,
                RotateAndStraighten              = false,
                Language          = IronOcr.Languages.English.OcrLanguagePack,
                EnhanceResolution = false,
                InputImageType    = AdvancedOcr.InputTypes.Document,
                ReadBarCodes      = true,
                Strategy          = AdvancedOcr.OcrStrategy.Fast
            };

            //string filePath = currentDir + @"\test-pdf-ocr.pdf";
            //Image myImage = Image.FromFile(filePath, true);

            var testDocument = currentDir + @"\test-pdf-ocr.pdf";

            Point     point = new Point(71, 1278);
            Size      size  = new Size(1282, 90);
            Rectangle rect  = new Rectangle(point, size);

            var Results = Ocr.ReadPdf(testDocument, rect, 1);
            //Results.Pages.
            var Pages       = Results.Pages;
            var Barcodes    = Results.Barcodes;
            var FullPdfText = Results.Text;


            foreach (var page in Results.Pages)
            {
                Console.WriteLine(page);
            }

            Console.WriteLine(FullPdfText);
            //Console.WriteLine("Barcodes:" + String.Join(",", Results.Barcodes.Select(b => b.Value)));
        }
Пример #29
0
        public OcrResult ReadText(Image img)
        {
            var Ocr = new AdvancedOcr()
            {
                CleanBackgroundNoise             = false,
                EnhanceContrast                  = false,
                EnhanceResolution                = false,
                Language                         = IronOcr.Languages.English.OcrLanguagePack,
                Strategy                         = IronOcr.AdvancedOcr.OcrStrategy.Fast,
                ColorSpace                       = AdvancedOcr.OcrColorSpace.GrayScale,
                DetectWhiteTextOnDarkBackgrounds = false,
                InputImageType                   = AdvancedOcr.InputTypes.AutoDetect,
                RotateAndStraighten              = true,
                ReadBarCodes                     = false,
                ColorDepth                       = 4
            };

            var result = Ocr.Read(img);

            return(result);
        }
Пример #30
0
        private void button1_Click(object sender, EventArgs e)
        {
            var Ocr = new AdvancedOcr()
            {
                Language                         = IronOcr.Languages.Portuguese.OcrLanguagePack,
                ColorSpace                       = AdvancedOcr.OcrColorSpace.GrayScale,
                EnhanceResolution                = true,
                EnhanceContrast                  = true,
                CleanBackgroundNoise             = true,
                ColorDepth                       = 4,
                RotateAndStraighten              = false,
                DetectWhiteTextOnDarkBackgrounds = false,
                ReadBarCodes                     = false,
                Strategy                         = AdvancedOcr.OcrStrategy.Fast,
                InputImageType                   = AdvancedOcr.InputTypes.Document
            };

            OcrResult Result = Ocr.Read(@"C:\Temp\alexandre.png");

            textBox1.Text = Result.Text;
        }