Dlaczego Aspose.OMR dla C++?

Twórz i rozpoznawaj formy do odczytu maszynowego o dowolnym układzie i złożoności w aplikacjach lokalnych, usługach internetowych lub w chmurze. Nasze rozwiązanie nadaje się do projektów dowolnej wielkości - od prostych ankiet i quizów po egzaminy końcowe i wybory. Kliknij poniższe elementy, aby dowiedzieć się więcej o naszych funkcjach i korzyściach.

Illustration ocr

Nie potrzeba żadnego sprzętu

Użyj istniejącej kopiarki biurowej lub nawet aparatu w smartfonie zamiast specjalistycznego czytnika OMR.

Pełna personalizacja

Personalizuj formularze OMR, dodając automatycznie generowane kody QR i kody kreskowe, obrazy, pola podpisu i nie tylko.

Wiarygodne wyniki

Solidne algorytmy optycznego wykrywania znaków w połączeniu z możliwością precyzyjnego rozpoznawania gwarantują 100% dokładne wyniki.

Całe rozwiązanie

Aspose.OMR dla C++ obsługuje pełny przepływ pracy OMR - od zaprojektowania formularza po rozpoznanie wypełnionych wydruków.

Przyjazny dla programistów

Nasze API jest niezwykle łatwe w obsłudze nawet dla niedoświadczonych programistów. Prostą aplikację OMR można zapisać w 10 linijkach kodu.

Próbka kodu na żywo

Poznaj prostotę: Konwertuj obraz na tekst w zaledwie trzech linijkach kodu C++!

Gotowy do rozpoznania Gotowy do rozpoznania Upuść plik tutaj lub kliknij, aby przeglądać *

* Przesyłając swoje pliki lub korzystając z usługi, zgadzasz się z naszymi Warunki korzystania I Polityka prywatności.

Wynik uznania
 

Konwertuj obraz na tekst

Odkryj więcej przykładów >
  string file = "source.png";
  AsposeOCRInput source;
  source.url = file.c_str();
  vector<AsposeOCRInput> content = {source};
  
  RecognitionSettings settings;
  settings.language_alphabet = language::eng;
  
  size_t size = 0;
  wchar_t* buffer = asposeocr_serialize_result(result, size);
  wcout << wstring(buffer) << endl;

  asposeocr_free_result(result);

Moc C++ wszędzie

Aspose.OCR dla C++ bezproblemowo działa na każdej platformie.

Microsoft Windows
Linux
MacOS
GitHub
Microsoft Azure
Amazon Web Services
Docker

Obsługiwane formaty plików

Aspose.OCR for C++ może pracować z praktycznie każdym plikiem można uzyskać za pomocą skanera lub aparatu. Wyniki rozpoznania zwracane są w najpopularniejszych formatach plików i wymiany danych, które można zapisać, zaimportować do bazy danych lub przeanalizować w czasie rzeczywistym.

Obrazy

  • JPEG
  • PNG
  • TIFF
  • BMP

Partia OCR

  • Multi-page PDF
  • ZIP
  • Folder

Wyniki uznania

  • Text
  • PDF
  • Microsoft Word
  • Microsoft Excel
  • RTF
  • JSON
  • XML

Instalacja

Aspose.OCR dla C++ jest dystrybuowany jako pakiet NuGet lub jako plik do pobrania z minimalnymi zależnościami. Z łatwością zainstaluj go w swoim projekcie, a będziesz gotowy do rozpoznawania tekstów w wielu obsługiwanych językach i zapisywania wyników rozpoznawania w różnych formatach.

Poproś o licencję próbną , aby rozpocząć tworzenie w pełni funkcjonalnej aplikacji OCR bez ograniczeń.

Moc C++ na całej planszy

Nasza biblioteka w pełni obsługuje C++ 11 i nowsze wersje, umożliwiając płynne działanie aplikacji na dowolnej platformie – komputerowym Windows, Windows Server, macOS, Linux i w chmurze.

28 języków rozpoznawania

Nasz interfejs API C++ OCR rozpoznaje mnóstwo języków i popularnych skryptów pisarskich, w tym języki mieszane:

Pozostaw wykrywanie języka bibliotece lub zdefiniuj język samodzielnie, aby zwiększyć wydajność i niezawodność rozpoznawania.

  • Rozszerzony alfabet łaciński: chorwacki, czeski, duński, holenderski, angielski, estoński, fiński, francuski, niemiecki, włoski, łotewski, litewski, norweski, polski, portugalski, rumuński, słowacki, słoweński, hiszpański, szwedzki;
  • Cyrylica alfabet: białoruski, bułgarski, kazachski, rosyjski, serbski, ukraiński;
  • Chiński: Ponad 6000 znaków;
  • Hinduski.

Funkcje i możliwości, które wzmacniają

Aspose.OCR for C++ Odkryj zaawansowane funkcje i możliwości Aspose.OCR dla C++.

Feature icon

Zdjęcie OCR

Wyodrębniaj tekst ze zdjęć smartfonów z dokładnością na poziomie skanowania.

Feature icon

Przeszukiwalny plik PDF

Konwertuj dowolny skan w dokument z możliwością pełnego przeszukiwania i indeksowania.

Feature icon

Rozpoznawanie adresu URL

Rozpoznaj obraz z adresu URL bez pobierania go lokalnie.

Feature icon

Rozpoznawanie zbiorcze

Czytaj wszystkie obrazy z wielostronicowych dokumentów, folderów i archiwów.

Feature icon

Dowolna czcionka i styl

Identyfikuj i rozpoznawaj tekst we wszystkich popularnych krojach i stylach.

Feature icon

Dostosuj rozpoznawanie

Dostosuj każdy parametr OCR, aby uzyskać najlepsze wyniki rozpoznawania.

Feature icon

Sprawdzanie pisowni

Popraw wyniki, automatycznie poprawiając błędnie napisane słowa.

Feature icon

Znajdź tekst na obrazach

Wyszukaj tekst lub wyrażenie regularne w zestawie obrazów.

Feature icon

Porównaj teksty obrazów

Porównaj teksty na dwóch obrazach, niezależnie od wielkości i układu.

Feature icon

Ogranicz zakres rozpoznawania

Ogranicz zestaw znaków, których będzie szukał silnik OCR.

Feature icon

Wykryj defekty obrazu

Automatycznie znajduj potencjalnie problematyczne obszary obrazu.

Feature icon

Rozpoznaj obszary

Znajdź i przeczytaj tylko określone obszary obrazu, a nie cały tekst.

Przykłady kodu C++

Zagłęb się w próbki kodu, aby bezproblemowo zintegrować Aspose.OCR dla C++ ze swoimi aplikacjami.

Biegłość w instalacji C++

Jako lekki plik archiwum C++ (LIB) lub plik do pobrania z minimalnymi zależnościami, Aspose.OCR dla C++ jest łatwo dystrybuowany. Integracja z projektem bezpośrednio z preferowanego zintegrowanego środowiska programistycznego (IDE) C++ przebiega bezproblemowo. Po prostu go zainstaluj i będziesz przygotowany na wykorzystanie pełnego zakresu możliwości OCR, zapisując wyniki rozpoznawania w dowolnym obsługiwanym formacie.

Po instalacji możesz natychmiast rozpocząć korzystanie z Aspose.OCR dla C++ , choć z pewnymi ograniczeniami. Licencja tymczasowa znosi wszystkie ograniczenia wersji próbnej na 30 dni. Wykorzystaj ten okres na rozpoczęcie rozwoju w pełni funkcjonalnej aplikacji OCR, co pozwoli Ci na późniejszym etapie podjąć świadomą decyzję o zakupie Aspose.OCR dla C++.

OCR dla zdjęć C++

Pokonaj wyzwanie, jakie stanowią aplikacje OCR, w których brakuje powszechnych skanerów. Nasz interfejs API oferuje potężne, wbudowane filtry wstępnego przetwarzania obrazu, które sprawnie radzą sobie z obrazami obróconymi, przekrzywionymi i zaszumionymi. W połączeniu z obsługą wszystkich formatów obrazu zapewnia niezawodne rozpoznawanie nawet ze zdjęć wykonanych smartfonem. Większość przetwarzania wstępnego i korekcji obrazu jest zautomatyzowana i wymaga interwencji użytkownika tylko w trudnych przypadkach. Możesz także wstępnie zdefiniować obszary obrazu, z którymi chcesz pracować.

Ustaw niestandardowy kąt dla korekcji skosu i zdefiniuj obszary rozpoznawania - C++

string file = "photo.png";
AsposeOCRInput source;
source.url = file.c_str();
std::vector<AsposeOCRInput> content = { source };

// Fine-tune recognition
RecognitionSettings settings;
settings.detect_areas_mode = detect_areas_mode_enum::PHOTO;

// Extract text from the photo
auto result = asposeocr_recognize(content.data(), content.size(), settings);

// Output the recognized text
wchar_t* buffer = asposeocr_serialize_result(result, buffer_size, export_format::text);
std::wcout << std::wstring(buffer) << std::endl;

// Release the resources
asposeocr_free_result(result);

Rozpoznawanie tekstu w określonych obszarach obrazu

Zdefiniuj określone regiony do rozpoznawania tekstu, zwiększając dokładność. Dostosuj rozpoznawanie, aby skupić się na kluczowych obszarach, optymalizując wyniki w procesie przetwarzania obrazu.

Zdefiniuj regiony rozpoznawania dla OCR - C++

// Original image
std::string image_path = "../Data/Source/sample.png";
rect rectangles[2] = { {90, 186, 775, 95} , { 928, 606, 790, 160 } };

// Prepare buffer for result
const size_t len = 4096;
wchar_t buffer[len] = { 0 };

// Adjust skew angle
RecognitionSettings settings;
settings.format = export_format::text;
settings.rectangles = rectangles;
settings.rectangles_size = 2;
settings.skew = 5;

// Recognize image
size_t res_len = aspose::ocr::page_settings(image_path.c_str(), buffer, len, settings);

Konwersja skanu na dokument edytowalny

Chociaż wiele firm, organizacji i osób aktywnie pracuje nad ograniczeniem korzystania z dokumentów papierowych, jest to nadal najbardziej rozpowszechniony format przechowywania i udostępniania. Zeskanowane dokumenty poparte archiwami fizycznymi wystarczą do zapewnienia zgodności z przepisami, celów prawnych, długoterminowego tworzenia kopii zapasowych i redundancji. Jednakże często pojawiają się uzasadnienia biznesowe dotyczące tworzenia nowych dokumentów w oparciu o istniejącą zeskanowaną treść lub fragmenty istniejących dokumentów.

Aspose.OCR dla С++ ułatwia konwersję zeskanowanego obrazu lub pliku PDF opartego na obrazie na edytowalny dokument DOCX lub RTF lub arkusz kalkulacyjny Microsoft Excel (XLSX). Treść jest rozpoznawana z dużą dokładnością i szybkością, co pozwala zaoszczędzić czas i wysiłek związany z ręcznym pisaniem oraz gwarantuje, że nie wystąpią żadne błędy ludzkie, szczególnie podczas pracy z dużymi ilościami tekstu.

Zamień zeskanowany obraz na możliwy do uzyskania dokument tekstowy - C++

// Provide the folder with scanned pages
directory dir("./scans/");
const string current_dir = dir.full_name();
const string image = current_dir + "p.png";
const size_t len = 6000;
wchar_t buffer[len] = { 0 };

// Recognize and save results to Microsoft Word document
RecognitionSettings settings;
settings.save_format = file_format::docx;
asposeocr_page_save(image.c_str(), "result.docx", settings);

Wykrywanie defektów obrazu

Wady obrazu mogą znacząco wpłynąć na dokładność OCR. Mogą być spowodowane jakością procesu akwizycji obrazu, warunkami środowiskowymi i sprzętem używanym do przechwytywania obrazu. Aby poprawić dokładność rozpoznawania, konieczne jest wstępne przetworzenie i udoskonalenie obrazów w celu ograniczenia tych defektów, gdy tylko jest to możliwe.

Aspose.OCR dla C++ może automatycznie znaleźć potencjalnie problematyczne obszary obrazu podczas rozpoznawania. Możesz wyróżnić problematyczne obszary podczas podglądu obrazu, a nawet przeprowadzić OCR, korzystając z alternatywnych ustawień rozpoznawania, aby uzyskać lepszy wynik.

Rozpoznawanie tekstu na obrazach rozmazanych, zniekształconych i o niskim kontraście - C++

// Provide the image
string file = "source.png";
AsposeOCRInput source;
source.url = file.c_str();
vector<AsposeOCRInput> content = {source};

// Activate detection of low-contrast areas
RecognitionSettings settings;
settings.defect_type = defect_type::ASPOSE_OCR_DETECT_DARK_IMAGES;

// Find and show low-contrast areas
AsposeOCRRecognitionResult result = asposeocr_recognize(content.data(), content.size(), settings);
for (size_t p_number = 0; p_number < result.pages_amount; ++p_number)
{
  cout << "Page " << p_number << ";\n";
  const auto& page = result.recognized_pages[p_number];
  for (size_t defect_number = 0; defect_number < page.defects_count; ++defect_number)
  {
    const auto& defect_area = page.defect_areas[defect_number];
    cout << "Low-contrast area " << defect_number << ":" << defect_area.area << std::endl;
  }
}

// Release the resources
asposeocr_free_result(result);

Przetwarzanie wsadowe

OCR API uwalnia Cię od konieczności rozpoznawania każdego obrazu jeden po drugim, oferując różne metody przetwarzania wsadowego, które pozwalają rozpoznać wiele obrazów w jednym wywołaniu:

  • Rozpoznawanie wielostronicowych plików PDF i TIFF.
  • Rozpoznawanie wszystkich plików w folderze.
  • Rozpoznawanie wszystkich plików w archiwum.

Rozpoznaj archiwum ZIP - C++

// Provide a ZIP archive
string file = "pages.zip";
AsposeOCRInput source;
source.url = file.c_str();
std::vector<AsposeOCRInput> content = { source };

// Fine-tune recognition
RecognitionSettings settings;
settings.detect_areas_mode = detect_areas_mode_enum::COMBINE;

// Extract texts
auto result = asposeocr_recognize(content.data(), content.size(), settings);

Opcja wykrywania tekstu

Wyniki rozpoznawania można dzielić na linie i wykrywać obszary tekstowe na stronie.

Wykryj tekst na obrazie — C++

size_t res_len = asposeocr_get_rectangles_number(image_path.c_str(), areas_type::lines, false);
rect* rectangles = new rect[res_len];
res_len = asposeocr_get_rectangles(image_path.c_str(), areas_type::lines, false, rectangles, res_len);