Почему Aspose.OMR для C++?

Создавайте и распознавайте машиночитаемые формы любой компоновки и сложности в локальных приложениях, веб-сервисах или в облаке. Наше решение подходит для проектов любого масштаба — от простых опросов и викторин до выпускных экзаменов и выборов. Нажмите на элементы ниже, чтобы узнать больше о наших функциях и преимуществах.

Illustration ocr

Никакого оборудования не требуется

Используйте свой офисный копировальный аппарат или даже камеру смартфона вместо специализированного устройства чтения OMR.

Полная персонализация

Персонализируйте формы OMR, добавляя автоматически сгенерированные QR-коды и штрих-коды, изображения, поля для подписи и многое другое.

Надежные результаты

Надежные алгоритмы обнаружения оптических меток в сочетании с возможностью точной настройки распознавания гарантируют 100% точные результаты.

Полное решение

Aspose.OMR для C++ поддерживает полный рабочий процесс OMR — от разработки формы до распознавания ее заполненных печатных копий.

Удобный для разработчиков

Наш API чрезвычайно прост в использовании даже для неопытных разработчиков. Простое приложение OMR можно написать в 10 строках кода.

Пример живого кода

Ощутите простоту: преобразуйте изображение в текст всего за три строки кода C++!

Готов признать Готов признать Перетащите файл сюда или нажмите, чтобы просмотреть *

* Загружая свои файлы или используя услугу, вы соглашаетесь с нашими Условия эксплуатации и политика конфиденциальности.

Результат распознавания
 

Преобразовать изображение в текст

Откройте для себя больше примеров >
  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);

Сила C++ повсюду

Aspose.OCR для C++ легко работает на любой платформе.

Microsoft Windows
Linux
MacOS
GitHub
Microsoft Azure
Amazon Web Services
Docker

Поддерживаемые форматы файлов

Aspose.OCR for C++ может работать практически с любым файлом можно получить со сканера или камеры. Результаты распознавания возвращаются в наиболее популярных форматах обмена файлами и данными, которые можно сохранить, импортировать в базу данных или проанализировать в режиме реального времени.

Изображений

  • JPEG
  • PNG
  • TIFF
  • BMP

Пакетное распознавание текста

  • Multi-page PDF
  • ZIP
  • Folder

Результаты распознавания

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

Монтаж

Aspose.OCR для C++ распространяется как пакет NuGet или как загружаемый файл с минимальными зависимостями. Легко установите в свой проект, и вы будете готовы распознавать тексты на нескольких поддерживаемых языках и сохранять результаты распознавания в различных форматах.

Запросите пробную лицензию , чтобы начать разработку полнофункционального приложения OCR без ограничений.

Мощь C++ во всех сферах

Наша библиотека полностью поддерживает C++11 и более поздние версии, позволяя вашим приложениям беспрепятственно работать на любой платформе — настольной Windows, Windows Server, macOS, Linux и в облаке.

28 языков распознавания

Наш API C++ OCR распознает множество языков и популярных письменных сценариев, включая смешанные языки:

Оставьте определение языка библиотеке или определите язык самостоятельно, чтобы повысить производительность и надежность распознавания.

  • Расширенный латинский алфавит: хорватский, чешский, датский, голландский, английский, эстонский, финский, французский, немецкий, итальянский, латышский, литовский, норвежский, польский, португальский, румынский, словацкий, словенский, испанский, шведский;
  • Кириллица: белорусский, болгарский, казахский, русский, сербский, украинский;
  • Китайский: более 6000 символов;
  • Хинди.

Функции и возможности, которые расширяют возможности

Aspose.OCR for C++ Откройте для себя расширенные функции и возможности Aspose.OCR для C++.

Feature icon

Распознавание фотографий

Извлекайте текст из фотографий смартфона с точностью на уровне сканирования.

Feature icon

PDF с возможностью поиска

Преобразуйте любое отсканированное изображение в полностью доступный для поиска и индексируемый документ.

Feature icon

Распознавание URL-адресов

Распознайте изображение по URL-адресу, не загружая его локально.

Feature icon

Массовое распознавание

Читать все изображения из многостраничных документов, папок и архивов.

Feature icon

Любой шрифт и стиль

Идентифицируйте и распознавайте текст во всех популярных шрифтах и ​​стилях.

Feature icon

Точная настройка распознавания

Настройте каждый параметр OCR для достижения наилучших результатов распознавания.

Feature icon

Программа проверки орфографии

Улучшайте результаты, автоматически исправляя слова с ошибками.

Feature icon

Найти текст в изображениях

Поиск текста или регулярного выражения в наборе изображений.

Feature icon

Сравните тексты изображений

Сравнивайте тексты на двух изображениях независимо от регистра и макета.

Feature icon

Ограничить область признания

Ограничьте набор символов, которые будет искать механизм OCR.

Feature icon

Обнаружение дефектов изображения

Автоматически находите потенциально проблемные области изображения.

Feature icon

Распознавание областей

Найдите и прочитайте только определенные области изображения, а не весь текст.

Примеры кода C++

Изучите примеры кода, чтобы легко интегрировать Aspose.OCR для C++ в ваши приложения.

Мастерство установки C++

Aspose.OCR for C++ легко распространяется в виде легковесного файла архива C++ (LIB) или загружаемого файла с минимальными зависимостями. Интеграция в ваш проект непосредственно из предпочитаемой вами интегрированной среды разработки C++ (IDE) — это простой процесс. Просто установите его, и вы будете готовы использовать весь спектр возможностей OCR, сохраняя результаты распознавания в любом из поддерживаемых форматов.

После установки вы можете сразу же начать использовать Aspose.OCR для C++. , хотя и с некоторыми ограничениями. Временная лицензия снимает все ограничения пробной версии на 30 дней. Используйте этот период, чтобы начать разработку полнофункционального приложения OCR, которое позволит вам принять обоснованное решение о покупке Aspose.OCR для C++ на более позднем этапе.

OCR для фотографий C++

Решите проблему, связанную с отсутствием широко распространенных сканеров в приложениях оптического распознавания символов. Наш API может похвастаться мощными встроенными фильтрами предварительной обработки изображений, которые умело обрабатывают повернутые, перекошенные и зашумленные изображения. В сочетании с поддержкой всех форматов изображений он обеспечивает надежное распознавание даже фотографий со смартфона. Большая часть предварительной обработки и коррекции изображений автоматизирована и требует вашего вмешательства только в сложных случаях. Также вы можете заранее определить области изображения для работы.

Установка пользовательского угла для коррекции перекоса и определение областей распознавания – 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);

Распознавание текста в определенных областях изображения

Определите конкретные области для распознавания текста, повысив точность. Настройте распознавание, чтобы сосредоточиться на критически важных областях, оптимизируя результаты рабочего процесса обработки изображений.

Определение областей распознавания для 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);

Преобразование скана в редактируемый документ

Хотя многие предприятия, организации и частные лица активно работают над сокращением своей зависимости от бумажных документов, это по-прежнему наиболее распространенный формат хранения и обмена. Отсканированных документов, хранящихся в физических архивах, достаточно для соблюдения нормативных требований, юридических целей, долгосрочного резервного копирования и резервирования. Однако часто возникают экономические обоснования для создания новых документов на основе существующего отсканированного содержимого или частей существующих документов.

Aspose.OCR для С++ позволяет легко конвертировать отсканированное изображение или PDF-файл на основе изображения в редактируемый документ DOCX или RTF или электронную таблицу Microsoft Excel (XLSX). Контент распознается с высокой точностью и скоростью, что экономит ваше время и усилия при ручном вводе и гарантирует отсутствие человеческих ошибок, особенно при работе с большими объемами текста.

Преобразование отсканированного изображения в редактируемый текстовый документ – 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);

Обнаружение дефектов изображения

Дефекты изображения могут существенно повлиять на точность оптического распознавания символов. Они могут быть вызваны качеством процесса получения изображения, условиями окружающей среды и оборудованием, используемым для захвата изображения. Чтобы повысить точность распознавания, важно предварительно обработать и улучшить изображения, чтобы по возможности устранить эти дефекты.

Aspose.OCR для C++ может автоматически находить потенциально проблемные области изображения во время распознавания. Вы можете выделить проблемные области при предварительном просмотре изображения и даже распознать их, используя альтернативные настройки распознавания, чтобы получить лучший результат.

Распознавание текста на размытых, искаженных и низкоконтрастных изображениях — 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);

Пакетная обработка

OCR API освобождает вас от необходимости распознавать каждое изображение по одному, предлагая различные методы пакетной обработки, которые позволяют распознавать несколько изображений за один вызов:

  • Распознавание многостраничных файлов PDF и TIFF.
  • Распознавание всех файлов в папке.
  • Распознавание всех файлов в архиве.

Распознать 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);

Опция обнаружения текста

Вы можете разбить результаты распознавания на строки и обнаружить текстовые области на странице.

Обнаружение текста на изображении — 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);