TesseractOcrSettings ISettingsRecognition.Settings() { OcrLanguage language = OcrLanguage.Russian; TesseractOcrSettings setting = new TesseractOcrSettings(language); return(setting); }
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; }
private async void DownloadableLanguage_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { OcrLanguage ocrLanguage = sender as OcrLanguage; if (e.PropertyName.Equals(nameof(ocrLanguage.IsDownloading))) { await Device.InvokeOnMainThreadAsync(() => PopulateDownloadableLanguages()); } }
public ImageRecognizeViewModel() { OcrLanguage language = (OcrLanguage)Enum.Parse( typeof(OcrLanguage), (LocalSettingHelper.GetLocalSettingValue(LocalSettingHelper.RecogLanguageKey)).ToString()); _ocrEngine = new OcrEngine(language); _imageModel = new ImageModel(); }
private static async Task<OcrResult> Recognize(string fileName, OcrLanguage language) { var ocrEngine = new OcrEngine(language); using (var stream = File.OpenRead(fileName)) { var winRtStream = stream.AsRandomAccessStream(); var decoder = await BitmapDecoder.CreateAsync(winRtStream); var bitmap = await decoder.GetPixelDataAsync(); return await ocrEngine.RecognizeAsync(decoder.PixelHeight, decoder.PixelWidth, bitmap.DetachPixelData()); } }
private void CancelLanguageDownloadButton_Tapped(object sender, EventArgs e) { OcrLanguage ocrLanguage = (sender as Label).BindingContext as OcrLanguage; if (ocrLanguage == null) { return; } OcrLanguageManager.CancelDownloadForLanguage(ocrLanguage.Language); }
public void CreateTesseractEngine() { string tesseractOcrDllPath = @"G:\Programm\vintasoft\Bin\TesseractOCR"; using (TesseractOcr tesseractOcr = new TesseractOcr(tesseractOcrDllPath)) { OcrLanguage language = OcrLanguage.Russian; TesseractOcrSettings settings = new TesseractOcrSettings(language); tesseractOcr.Init(settings); tesseractOcr.Shutdown(); } }
private async void SpeakButton_Tapped(object sender, EventArgs e) { if (_isSpeaking) { CancelSpeech(); _cts = new CancellationTokenSource(); return; } _isSpeaking = !_isSpeaking; Label speakButton = sender as Label; if (speakButton != null) { speakButton.Text = _isSpeaking ? "STOP" : "SPEAK"; } Locale currentLocale = await GetTextToSpeechLocale(_pageLanguage); if (currentLocale == null) { speakButton.Text = "SPEAK"; _isSpeaking = false; OcrLanguage ocrLanguage = new OcrLanguage(_pageLanguage); await DisplayAlert("Error", $"Speech is not supported for the {ocrLanguage.LocalizedName} Language", "Ok"); return; } string documentText = GetDocumetText(); if (string.IsNullOrWhiteSpace(documentText)) { await DisplayAlert("Error", $"Document does not contains text", "Ok"); return; } _ = TextToSpeech.SpeakAsync(documentText, new SpeechOptions() { Locale = currentLocale, Pitch = 1.0f, Volume = 1.0f }, _cts.Token).ContinueWith((t) => { // Logic that will run after utterance finishes. _isSpeaking = false; speakButton.Text = "SPEAK"; }, TaskScheduler.FromCurrentSynchronizationContext()); }
private void DownloadLanguageButton_Tapped(object sender, EventArgs e) { Label downloadButton = sender as Label; downloadButton.IsEnabled = false; OcrLanguage ocrLanguage = (sender as Label).BindingContext as OcrLanguage; if (ocrLanguage == null) { return; } ocrLanguage.Tag = sender; OcrLanguageManager.DownloadLanguage(ocrLanguage.Language, null, new OcrLanguageManager.CompletionDelegate(DownloadLanguageCompleted)); }
public static string[] GetDirectory(OcrLanguage language) { switch (language) { case OcrLanguage.English: return(new [] { @"tessdata\enUS", @"get/tessdata/en-US" }); case OcrLanguage.SimplifiedChinese: return(new [] { @"tessdata\zhCN", @"get/tessdata/zh-CN" }); case OcrLanguage.TraditionalChinese: return(new [] { @"tessdata\zhTW", @"get/tessdata/zh-TW" }); default: throw new ArgumentOutOfRangeException(); } }
public static bool IsTessDataAvailable(OcrLanguage language) { switch (language) { case OcrLanguage.English: return(DataFileAvailable(OcrEngineEnglish.TessdataFilePaths)); case OcrLanguage.SimplifiedChinese: return(DataFileAvailable(OcrEngineSimplifiedChinese.TessdataFilePaths)); case OcrLanguage.TraditionalChinese: return(DataFileAvailable(OcrEngineTraditionalChinese.TessdataFilePaths)); default: throw new ArgumentOutOfRangeException(); } }
public static OcrEngine CreateEngine(OcrLanguage language) { switch (language) { case OcrLanguage.English: return(new OcrEngineEnglish()); case OcrLanguage.SimplifiedChinese: return(new OcrEngineSimplifiedChinese()); case OcrLanguage.TraditionalChinese: return(new OcrEngineTraditionalChinese()); default: throw new ArgumentOutOfRangeException(); } }
private void ListPickerFlyOut1Picker(ListPickerFlyout sender, ItemsPickedEventArgs args) { var items = args.AddedItems; if (items.Any() == false) { return; } OcrLanguage language = (OcrLanguage)Enum.Parse( typeof(OcrLanguage), items.First().ToString()); LocalSettingHelper.SetLocalSettingKeyValue(LocalSettingHelper.RecogLanguageKey, (int)language); string key = Util.AvailableCountries.Where(country => country.Value == language).First().Key; langRecog.Content = key; }
public Recognizer(OcrLanguage language, string sourceDirectory = null) { _engine = OcrEngine.CreateEngine(language); TempDirectoryPath = sourceDirectory + @"\Test\"; if (!Directory.Exists(TempDirectoryPath)) { Directory.CreateDirectory(TempDirectoryPath); } var direLeft = TempDirectoryPath + @"left\"; if (!Directory.Exists(direLeft)) { Directory.CreateDirectory(direLeft); } var direRight = TempDirectoryPath + @"right\"; if (!Directory.Exists(direRight)) { Directory.CreateDirectory(direRight); } }
private async void DownloadLanguageCompleted(OcrLanguage language, Exception error) { if (language != null && language.Tag != null) { await Device.InvokeOnMainThreadAsync(() => (language.Tag as Label).IsEnabled = true); } if (error == null) { // Download completed successfully, then remove the downloaded language from the downloadable languages list and add it to the inactive languages list. await Device.InvokeOnMainThreadAsync(async() => { if (language != null && !language.CancellationTokenSource.IsCancellationRequested) { DownloadableLanguages = OcrLanguageManager.DownloadableLanguages; var langs = InactiveLanguages.Where(l => l.Language.Equals(language.Language)); if (langs == null || langs.Count() == 0) { InactiveLanguages.Add(language); } language.IsDownloadable = false; await Device.InvokeOnMainThreadAsync(() => ReloadCachedLanguagesInfo()); } }); } else { // Error occurred while downloading this language await Device.InvokeOnMainThreadAsync(async() => { ReloadCachedLanguagesInfo(); await DisplayAlert("Error Downloading File", $"Encountered an error while trying to download the {language.LocalizedName} language: {error.Message}", "OK"); }); } }
private void DeleteLanguageButton_Tapped(object sender, EventArgs e) { OcrLanguage ocrLanguage = (sender as SvgImage).BindingContext as OcrLanguage; if (ocrLanguage == null) { return; } OcrLanguageManager.DeleteLanguage(ocrLanguage.Language); ocrLanguage.IsDownloadable = true; // Manually remove from active/inactive languages, then manually add to downloadable languages if (ActiveLanguages.Contains(ocrLanguage)) { ActiveLanguages.Remove(ocrLanguage); } else if (InactiveLanguages.Contains(ocrLanguage)) { InactiveLanguages.Remove(ocrLanguage); } if (!DownloadableLanguages.Contains(ocrLanguage)) { // Take the language from OcrLanguageManager.DownloadableLanguages instead of the local downloadable languages list since that one // has the updated class members like file size and what not. var langs = OcrLanguageManager.DownloadableLanguages.Where(l => l.Language.Equals(ocrLanguage.Language)); if (langs != null && langs.Count() > 0) { ocrLanguage = langs.ElementAt(0); } DownloadableLanguages.Add(ocrLanguage); } ReloadCachedLanguagesInfo(); }
/// <summary> /// Invoked when this page is about to be displayed in a Frame. /// </summary> /// <param name="e">Event data that describes how this page was reached. /// This parameter is typically used to configure the page.</param> protected override void OnNavigatedTo(NavigationEventArgs e) { listpickerflyout1.ItemsSource = Util.AvailableCountries.Values; OcrLanguage language = (OcrLanguage)Enum.Parse( typeof(OcrLanguage), LocalSettingHelper.GetLocalSettingValue(LocalSettingHelper.RecogLanguageKey).ToString()); langRecog.Content = Util.AvailableCountries.Where(country => country.Value == language).First().Key; listpickerflyout2.ItemsSource = Util.SupportedLanguages.Keys; string lang = LocalSettingHelper.GetLocalSettingValue(LocalSettingHelper.LanguageTranslateTo).ToString(); langtoTranslate.Content = Util.SupportedLanguages[lang]; geoLocalSwitchToggle.IsOn = Convert.ToBoolean( LocalSettingHelper.GetLocalSettingValue(LocalSettingHelper.AllowGPSKey) ); SdCardSwitchToggle.IsOn = Convert.ToBoolean( LocalSettingHelper.GetLocalSettingValue(LocalSettingHelper.SaveOnSdCard) ); }
protected override DataTemplate OnSelectTemplate(object item, BindableObject container) { DataTemplate retTemplate = DefaultItemTemplate; OcrLanguage langItem = item as OcrLanguage; if (langItem != null) { CustomListView listView = (container as CustomListView); OcrLanguagesPage parentPage = listView.GetParentPage() as OcrLanguagesPage; if (langItem.IsDownloadable) { retTemplate = langItem.IsDownloading ? DownloadingTemplate : DefaultDownloadTemplate; } else if (parentPage.IsInEditMode) { // If active languages list view and it contains only one language then don't show the edit template retTemplate = (!string.IsNullOrWhiteSpace(listView.StyleId) && listView.StyleId.Equals("ActiveLanguages") && listView.ItemsSource != null && (listView.ItemsSource as ObservableCollection <OcrLanguage>).Count == 1) ? DefaultItemTemplate : EditLanguagesItemTemplate; } } return(retTemplate); }
private async Task initRecognizeLanguage() { // Kiểm tra key có tồn tại hay không. // Nếu có => return khôgn làm gì // Nếu không => Hỏi có cho dùng GPS không // ____________ Nếu khôgn cho thì lưu key với value là english // ____________ Nếu cho thì gọi CharacterRecognizeModel.InitLanguage(); => lưu key if (LocalSettingHelper.IsExistsLocalSettingKey(LocalSettingHelper.RecogLanguageKey) == false) { bool isAllowGPS = await AskForUseGPS(); OcrLanguage language = OcrLanguage.English; if (isAllowGPS == true) { language = await CharacterRecognizeModel.InitLanguage(); } else { language = OcrLanguage.English; } LocalSettingHelper.SetLocalSettingKeyValue(LocalSettingHelper.RecogLanguageKey, (int)language); } }
/// <summary> /// Submitting picture, containing textual content, to plagiarism scan /// </summary> /// <param name="localfile">The local picture containing the content to scan</param> /// <param name="language">Specify the language of the text</param> /// <param name="options">Process Options: include http callback and add custom fields to the process</param> /// <exception cref="UnauthorizedAccessException">The login-token is undefined or expired</exception> /// <returns>The newly created process</returns> public CopyleaksProcess CreateByOcr(FileInfo localfile, OcrLanguage language, ProcessOptions options = null) { if (this.Token == null) { throw new UnauthorizedAccessException("Empty token!"); } else { this.Token.Validate(); } if (!localfile.Exists) { throw new FileNotFoundException("File not found!", localfile.FullName); } if (language == null) { throw new ArgumentNullException(nameof(language), "Cannot be null!"); } using (HttpClient client = new HttpClient()) { client.SetCopyleaksClient(HttpContentTypes.Json, this.Token); if (options != null) { options.AddHeaders(client); } HttpResponseMessage msg; // Uploading the local file to the server using (var content = new MultipartFormDataContent("Upload----" + DateTime.UtcNow.ToString(CultureInfo.InvariantCulture))) using (FileStream stream = localfile.OpenRead()) { content.Add(new StreamContent(stream, (int)stream.Length), "document", Path.GetFileName(localfile.Name)); msg = client.PostAsync( string.Format("{0}/{1}/create-by-file-ocr?language={2}", Resources.ServiceVersion, Resources.ServicePage, Uri.EscapeDataString(language.Type.ToString())), content).Result; } if (!msg.IsSuccessStatusCode) { throw new CommandFailedException(msg); } string json = msg.Content.ReadAsStringAsync().Result; var dateTimeConverter = new IsoDateTimeConverter { DateTimeFormat = "dd/MM/yyyy HH:mm:ss" }; CreateResourceResponse response = JsonConvert.DeserializeObject <CreateResourceResponse>(json, dateTimeConverter); if (options == null) { return(new CopyleaksProcess(this.Token, response, null)); } else { return(new CopyleaksProcess(this.Token, response, options.CustomFields)); } } }
public ImageRecognizeViewModel(OcrLanguage language) { _ocrEngine = new OcrEngine(language); _imageModel = new ImageModel(); }