private void exportToTextToolStripMenuItem_Click(object sender, EventArgs e) { try { StartExport(); var thread = new Thread(() => { var ocr = new IronTesseract(); ocr.SetLanguage((int)readComboBoxSelected(cbxLanguages)); using (Image img = (Image)picBox.Image?.Clone()) { if (img != null) { OcrInput ocrInput = new OcrInput(img); var text = ocr.Read(ocrInput).Text; txtRes.Invoke(new DisplayResultTextDelegate(DisplayResultText), text); } else { txtRes.Invoke(new DisplayResultTextDelegate(DisplayResultText), string.Empty); } } }); thread.IsBackground = true; thread.Start(); } catch (Exception ex) { EndExport(); MessageBox.Show(ex.Message, "Có lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
static void Main(string[] args) { Console.WriteLine("Loading files..."); var path = @"C:\Frelancing\ConsoleApp\OCR_Apps\IronOCR\Files\"; List <string> paths = Directory.EnumerateFiles(path, "*.pdf").ToList(); var searchableKeyCv = new List <string>(); foreach (string filePath in paths) { Console.WriteLine("Read File- " + filePath); Console.WriteLine("Start-" + DateTime.Now); var ocr = new IronTesseract(); using (var input = new OcrInput(filePath)) { var result = ocr.Read(input); var text = result.Text; if (text.Contains("React")) { searchableKeyCv.Add("React"); } //if (text.Contains("ETL")) // searchableKeyCv.Add("ETL"); Console.WriteLine("End-" + DateTime.Now); } } Console.WriteLine("Searchable Key Result-"); foreach (var item in searchableKeyCv) { Console.WriteLine(item); } Console.ReadKey(); }
static void ScanImageAndSaveTxt(string path) { var Ocr = new IronTesseract(); Ocr.Configuration.BlackListCharacters = "~`$#^*_}{][|\\@-©<>«="; Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract4; Ocr.Configuration.RenderSearchablePdfsAndHocr = true; Ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto; Ocr.Language = OcrLanguage.GermanBest; // var result = Ocr.Read(@"C:\Users\d4gei\Workspace\ScanAndHoardData\TestData\PXL_20201126_130717460.jpg"); //Console.WriteLine(result.Text); using (var Input = new OcrInput()) { Input.AddImage(path); Input.DeNoise(); //fixes digital noise Input.Deskew(); //fixes rotation and perspective // there are dozens more filters, but most users wont need them IronOcr.OcrResult Result = Ocr.Read(Input); Console.WriteLine(Result.Text); Result.SaveAsTextFile(path + ".txt"); Result.SaveAsHocrFile(path + ".html"); Result.SaveAsSearchablePdf(path + ".pdf"); } }
public void CaptureScreen() { //screenshot into png //string dir = AppDomain.CurrentDomain.BaseDirectory; Screenshot ps = new Screenshot(); Image i = ps.CaptureScreen(); //png into txt var Ocr = new IronTesseract(); string r = ""; using (var Input = new OcrInput(i)) { //TODO: this Read is having problems!! var Result = Ocr.Read(Input); r = Result.Text; } Console.WriteLine($"Result: {r}"); if (r.Contains("captcha") || r.Contains("Captcha")) { Stop(); Console.WriteLine("\nVerify detected, stopped all timers!"); } else { Console.WriteLine("\nNo Verify detected."); } }
public BillOfLadingModel Read(IFormFile file) { var result = new BillOfLadingModel(); var ss = new StorageService(); var it = new IronTesseract(); //ss.Upload(file); try { using (var input = new OcrInput()) { input.AddPdf(file.OpenReadStream()); var oRes = it.Read(input); var words = oRes.Words; result.Transporter.BLNumber = words.GetBLNumber(); } } catch (System.Exception e) { System.Diagnostics.Debug.WriteLine(e); } return(result); }
private void button1_Click(object sender, EventArgs e) { if (pictureBox1.ImageLocation == null) { string message = "Please drag image file to the top frame to continue..."; string caption = "Oops..."; MessageBoxButtons buttons = MessageBoxButtons.OK; DialogResult result; result = MessageBox.Show(message, caption, buttons); } else { var Ocr = new IronTesseract(); using (var Input = new OcrInput(pictureBox1.ImageLocation)) //show in the window { var Result = Ocr.Read(Input); textBox1.Text = Result.Text; textBox1.ScrollBars = ScrollBars.Both; } using (var Input = new OcrInput(pictureBox1.ImageLocation)) //the text every line without withspace { string text = Ocr.Read(Input).Text; Calculate c = new Calculate(text); c.CalculateLanguage();// calculate the language } } }
private string readPdf(string filename) { loadingForm.setProgress("Reading " + SafeFileName); using (var Input = new OcrInput(filename)) { var Result = Ocr.Read(Input); return(Result.Text); } }
/// <inheritdoc cref="IImageOcrReader"/> /// <summary> /// Reads the text on the given image. /// </summary> /// <param name="fileName">The file name.</param> /// <returns>The read <see cref="string"/>.</returns> /// <seealso cref="IImageOcrReader"/> public string ReadTextOnImage(string fileName) { var ocrHelper = new IronTesseract(); using var input = new OcrInput(fileName); input.Deskew(); input.DeNoise(); var result = ocrHelper.Read(input); return(result.Text); }
private void button2_Click(object sender, EventArgs e) { var Ocr = new IronTesseract(); using (var input = new OcrInput(fileName)) { input.Deskew(); var result = Ocr.Read(input); richTextBox1.Text = result.Text; } }
static void Main(string[] args) { var Ocr = new IronTesseract(); using (var Input = new OcrInput()) { Input.AddMultiFrameTiff(@"C:\Users\hrust\Downloads\pic 3.jpg"); var Result = Ocr.Read(Input); Result.SaveAsSearchablePdf("searchable.pdf"); } }
public static string IronOCR(string imagepath) // Iron_圖片辨識 { var Ocr = new IronTesseract(); using (var Input = new OcrInput(imagepath)) { Input.Deskew(); // use if image not straight Input.DeNoise(); // use if image contains digital noise var Result = Ocr.Read(Input); return(Result.Text); } }
/// <summary> /// /// </summary> /// <param name="path"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task <string> OcrAsync(string path, CancellationToken cancellationToken = default) { if (Ocr == null) { await InitializeAsync(cancellationToken).ConfigureAwait(false); } Ocr = Ocr ?? throw new InvalidOperationException("Ocr is null."); using var input = new OcrInput(path); input.Deskew(); var result = await Ocr.ReadAsync(input).ConfigureAwait(false); return(result.Text); }
private void TranslateFileInnerEngener() { string file = FilePath.Text; // ☜ jpg, gif, tif, pdf, etc. PBOCR.Value = 30; //var Ocr = new IronOcr.AdvancedOcr(); try { //Ocr.CleanBackgroundNoise = true; //Ocr.EnhanceContrast = true; //Ocr.EnhanceResolution = true; //Ocr.Language = IronOcr.o OcrLanguagePack( // Languages.ChineseSimplified.OcrLanguagePack, // Languages.English.OcrLanguagePack //); //PBOCR.Value = 40; //Ocr.Strategy = IronOcr.AdvancedOcr.OcrStrategy.Advanced; //Ocr.ColorSpace = AdvancedOcr.OcrColorSpace.Color; //Ocr.DetectWhiteTextOnDarkBackgrounds = true; //Ocr.InputImageType = AdvancedOcr.InputTypes.AutoDetect; //Ocr.RotateAndStraighten = true; //Ocr.ReadBarCodes = true; //Ocr.ColorDepth = 4; //var testDocument = file; //PBOCR.Value = 45; //var Results = Ocr.Read(testDocument); //PBOCR.Value = 80; //ResultTest.Text = Results.Text; //PBOCR.Value = 90; var Ocr = new IronTesseract(); using (var Input = new OcrInput(file)) { Ocr.Language = OcrLanguage.EnglishBest; //Ocr.AddSecondaryLanguage(OcrLanguage.ChineseSimplified); // Input.Deskew(); // use if image not straight //Input.DeNoise(); // use if image contains digital noise var Result = Ocr.Read(Input); //Console.WriteLine(Result.Text); ResultTest.Text = Result.Text; } } catch (Exception) { ResultTest.Text = "本地引擎在分析是出错,请联系管理员!"; } PBOCR.Value = 100; }
private async Task <Result <OcrResult> > OcrPdf(byte[] pdf) { try { using (var input = new OcrInput()) { input.AddPdf(pdf); input.DeNoise(); var ocrResult = await ocr.ReadAsync(input); return(Result <OcrResult> .Ok(ocrResult)); } } catch (Exception ex) { return(Result <OcrResult> .Failure(ex.ToString())); } }
public void ReadScreen(string image) { string result; var cr = new IronTesseract(); using (var input = new OcrInput(Imagepath + $"TeamGold\\{image}")) { input.DeNoise(); result = cr.Read(input).Text; } int index = 0; double gold = 0; char[] tmpGoldValue = result.ToCharArray(); char[] goldValue = new char[5]; foreach (char c in tmpGoldValue) { if (c != ' ') { goldValue[index] = c; index++; } } if (double.TryParse(goldValue[0].ToString() + goldValue[1].ToString(), out double resultV)) { gold += resultV; } if (double.TryParse(goldValue[3].ToString(), out double resultV2)) { gold += resultV2 / 10; } if (image == "GoldBlueTeam.png") { GoldBlue = gold; } else if (image == "GoldRedTeam.png") { GoldRed = gold; } }
public static string ConvertImgToText(Bitmap bt) { var Ocr = new IronTesseract(); // Fast Dictionary Ocr.Language = OcrLanguage.EnglishFast; // Latest Engine Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5; //AI OCR only without font analysis //Ocr.Configuration.EngineMode = TesseractEngineMode.LstmOnly; //Turn off unneeded options Ocr.Configuration.ReadBarCodes = false; Ocr.Configuration.RenderSearchablePdfsAndHocr = false; // Assume text is laid out neatly in an orthagonal document Ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto; using (var Input = new OcrInput(bt)) { var Result = Ocr.Read(Input); return(Result.Text); } }
private void btnTransform_Click(object sender, EventArgs e) { btnTransform.Enabled = false; var Ocr = new IronTesseract(); // Если выбран русский язык switch (cbLanguage.SelectedIndex) { case 0: Ocr.Language = OcrLanguage.EnglishBest; break; case 1: Ocr.Language = OcrLanguage.RussianBest; break; } using (var Input = new OcrInput(pbPic.Image)) { // Если изображение неровное if (chbAlign.Checked) { Input.Deskew(); } // Очистка шума if (chbNoise.Checked) { Input.DeNoise(); } var Result = Ocr.Read(Input); tbText.Text = Result.Text; } btnTransform.Enabled = true; }
private async void Form1_Load(object sender, EventArgs e) { Aletorio = oRandom.Next(0, 9999); //MessageBox.Show(Aletorio.ToString()); //string urlCaptcha = "https://e-consultaruc.sunat.gob.pe/cl-ti-itmrconsmulruc/captcha?accion=image"; string urlCaptcha = string.Format("https://e-consultaruc.sunat.gob.pe/cl-ti-itmrconsruc/captcha?accion=image&nmagic={0}", Aletorio); try { HttpResponseMessage response = await client.GetAsync(urlCaptcha); response.EnsureSuccessStatusCode(); Stream oStream = await response.Content.ReadAsStreamAsync(); //byte[] oMemoryStream = await response.Content.ReadAsByteArrayAsync(); Image oImage = Image.FromStream(oStream); var oCr = new IronTesseract(); using (var Input = new OcrInput(oImage)) { var Results = oCr.Read(Input); txtCaptcha.Text = Results.Text.Trim(); } pbImagen.Image = oImage; //var OcrEngine = new TesseractEngine("","eng", EngineMode.Default); //var img = Pix.LoadFromMemory(oMemoryStream); //var res = OcrEngine.Process(img); //txtCaptcha.Text = res.GetText(); } catch (HttpRequestException ex) { Console.WriteLine("\nException Caught!"); Console.WriteLine("Message :{0} ", ex.Message); } }
private async void HandleOcrProcess(object sender, RoutedEventArgs e) // OCR 작업을 위한 이벤트 핸들러 { // selectedImg에 소스가 없을 시 종료 if (selectedImgPath == null) { MessageBox.Show("사진을 선택해주세요!", "ERROR", MessageBoxButton.OK, MessageBoxImage.Error); return; } // 응용프로그램 제어 방지 Mouse.OverrideCursor = Cursors.Wait; BlockGrid.Visibility = Visibility.Visible; StatusLabel.Content = "사진-텍스트 변환중"; var set = Properties.Settings.Default; try { var Ocr = new IronTesseract(); if (koreanCheck.IsChecked == true) { Ocr.Language = OcrLanguage.KoreanBest; } else if (englishCheck.IsChecked == true) { Ocr.Language = OcrLanguage.EnglishBest; } else { // 응용프로그램 오류 방지를 위한 재시작 MessageBox.Show("언어선택에서 오류가 발생했습니다. 다시 실행합니다...", "ERROR", MessageBoxButton.OK, MessageBoxImage.Error); System.Diagnostics.Process.Start(Application.ResourceAssembly.Location); Application.Current.Shutdown(); } // OCR 작업 비동기 대기 using var Input = new OcrInput(selectedImgPath); var Result = await Ocr.ReadAsync(Input); // OCR 결과 텍스트를 정규식을 통해 불필요한 문자 제거 string resultString = Result.Text; resultString = Regex.Replace(resultString, @"[`@#$&*_{}[\]|\\;<>/]", "", RegexOptions.Singleline); resultString = Regex.Replace(resultString, "\\s+", " "); resultString = resultString.Trim(); // 맞춤법 검사 시행 StatusLabel.Content = "맞춤법 검사중"; resultString = await HandleSpellCheck(resultString); // 결과 텍스트 텍스트박스에 출력 ocrResultTextBox.Text = resultString; // 텍스트 파일 저장 옵션 설정이 되어있을시 저장 시행 if (set.IsTextSave) { string filePath = null; string fileName = Path.GetFileName(selectedImgPath); // 사용자가 저장 경로를 지정했는지 확인 후 저장 경로 설정 if (set.IsSavePathCustomed) { filePath = set.SavePath + "/txt/"; } else { filePath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/ITS/txt/"; } // 파일 경로 및 파일 이름 설정 string fileFullName = $"{filePath}{fileName}.txt"; // 중복된 파일이 존재할시 덮어쓸지 메세지 박스를 통해 알림 if (File.Exists(fileFullName)) { var dr = MessageBox.Show($"{fileFullName}이 이미 존재합니다. 덮어쓰시겠습니까?", "중복", MessageBoxButton.YesNo, MessageBoxImage.Question); if (dr == MessageBoxResult.Yes) { // 기존 텍스트 파일 제거 저장 비동기 대기 File.Delete(fileFullName); await File.WriteAllTextAsync(fileFullName, resultString.Replace(". ", ".\n")); // 가독성을 위한 ". " 이후 줄 변경 } else { return; } } else { // 텍스트 파일 저장 비동기 대기 await File.WriteAllTextAsync(fileFullName, resultString.Replace(". ", ".\n")); // 가독성을 위한 ". " 이후 줄 변경 } } } catch (Exception ex) { // 예외 처리 Console.WriteLine(ex); } finally { // 제어 방지 해제 BlockGrid.Visibility = Visibility.Hidden; Mouse.OverrideCursor = null; } }