OCR を使用して C++ アプリケーションを強化する
OCR の習得: 画像をテキストに変換する
その他のショーケース >AsposeOCRInput source;
source.url = file_path_str.c_str();
vector<AsposeOCRInput> content = {source};
// Extract text from the image
AsposeOCRRecognitionResult result
= asposeocr_recognize(content.data(), content.size());
// Output the recognized text
size_t size = 0;
wchar_t* result = asposeocr_serialize_result(result, size);
> Install-Package Aspose.Ocr.Cpp
C++ に Aspose.OMR を使用する理由
オンプレミス アプリケーション、Web サービス、またはクラウドで、あらゆるレイアウトと複雑さの機械可読フォームを作成して認識します。当社のソリューションは、簡単なアンケートやクイズから最終試験や選挙まで、あらゆる規模のプロジェクトに適しています。当社の機能とメリットの詳細については、以下の項目をクリックしてください。
機器は必要ありません
専用の OMR リーダーの代わりに、既存のオフィスのコピー機やスマートフォンのカメラを使用します。
完全なパーソナライゼーション
自動生成された QR コードやバーコード、画像、署名フィールドなどを追加して、OMR フォームをパーソナライズします。
信頼できる結果
堅牢な光学式マーク検出アルゴリズムと認識を微調整する機能により、100% 正確な結果が保証されます。
ソリューション全体
Aspose.OMR for C++ は、フォームの設計からその入力されたハードコピーの認識まで、完全な OMR ワークフローをサポートします。
開発者に優しい
私たちの API は、経験の浅い開発者でも非常に簡単に使用できます。単純な OMR アプリケーションは 10 行のコードで作成できます。
ライブコードサンプル
シンプルさを体験してください: わずか 3 行の 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 for C++ はあらゆるプラットフォームでシームレスに動作します。
サポートされているファイル形式
Aspose.OCR for C++ 事実上あらゆる[ファイル]を扱うことができます( https://docs.aspose.com/ocr/cpp/supported-file-formats/ ) スキャナーやカメラから取得できます。認識結果は、保存、データベースへのインポート、またはリアルタイムで分析できる最も一般的なファイルおよびデータ交換形式で返されます。
画像
- JPEG
- PNG
- TIFF
- BMP
バッチOCR
- Multi-page PDF
- ZIP
- Folder
認識結果
- Text
- Microsoft Word
- Microsoft Excel
- RTF
- JSON
- XML
インストール
Aspose.OCR for C++ は、NuGet パッケージとして、または依存関係を最小限に抑えた ダウンロード可能なファイル として配布されます。これをプロジェクトに簡単に インストール するだけで、サポートされている複数の言語でテキストを認識し、認識結果をさまざまな形式で保存できるようになります。
試用版ライセンスをリクエスト して、制限なく完全に機能する OCR アプリケーションの開発を開始します。
全体的な C++ パワー
当社のライブラリは C++11 以降を完全にサポートしており、デスクトップ Windows、Windows Server、macOS、Linux、クラウドなど、あらゆるプラットフォームでアプリケーションをシームレスに実行できます。
28 の認識言語
当社の C++ OCR API は、混合言語を含む、多数の言語と一般的なスクリプトを認識します。
言語検出をライブラリに任せるか、認識パフォーマンスと信頼性を向上させるために自分で言語を定義します。
- 拡張ラテン語 アルファベット: クロアチア語、チェコ語、デンマーク語、オランダ語、英語、エストニア語、フィンランド語、フランス語、ドイツ語、イタリア語、ラトビア語、リトアニア語、ノルウェー語、ポーランド語、ポルトガル語、ルーマニア語、スロバキア語、スロベニア語、スペイン語、スウェーデン語。
- キリル文字 アルファベット: ベラルーシ語、ブルガリア語、カザフ語、ロシア語、セルビア語、ウクライナ語。
- 中国語: 6,000 文字以上。
- ヒンディー語。
力を与える機能と機能
Aspose.OCR for C++ Aspose.OCR for C++ の高度な機能と機能をご覧ください。
写真OCR
スキャンレベルの精度でスマートフォンの写真からテキストを抽出します。
検索可能なPDF
あらゆるスキャンを完全に検索可能でインデックス可能なドキュメントに変換します。
URL認識
画像をローカルにダウンロードせずに、URL から画像を認識します。
一括認識
複数ページのドキュメント、フォルダー、アーカイブからすべての画像を読み取ります。
任意のフォントとスタイル
すべての一般的な書体とスタイルのテキストを識別して認識します。
認識を微調整する
最良の認識結果が得られるように、すべての OCR パラメータを調整します。
スペルチェッカー
スペルミスの単語を自動的に修正することで結果を改善します。
画像内のテキストを検索する
一連の画像内のテキストまたは正規表現を検索します。
画像テキストを比較する
大文字と小文字やレイアウトに関係なく、2 つの画像上のテキストを比較します。
認識範囲を制限する
OCR エンジンが検索する文字のセットを制限します。
画像欠陥の検出
画像内で問題がある可能性のある領域を自動的に検出します。
領域を認識する
すべてのテキストではなく、画像の特定の領域のみを検索して読み取ります。
C++ コードサンプル
コード サンプルを詳しく調べて、Aspose.OCR for C++ をアプリケーションにシームレスに統合します。
C++ インストールの習得
インストール後、すぐに Aspose.OCR for C++ の使用を開始できます。ただし、一定の制限があります。一時ライセンスにより、30 日間の試用版の制限がすべて解除されます。この期間を利用して完全に機能する OCR アプリケーションの開発を開始し、後の段階で Aspose.OCR for C++ を購入するかどうかについて十分な情報に基づいた決定を下せるようにします。
C++ 写真の OCR
広く普及しているスキャナが不足している OCR アプリケーションの課題を克服します。当社の 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 for С++ を使用すると、スキャンされた画像または画像ベースの 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);
画像欠陥の検出
画像の欠陥は OCR の精度に大きな影響を与える可能性があります。これらは、画像取得プロセスの品質、環境条件、画像のキャプチャに使用されたハードウェアによって発生する可能性があります。認識精度を向上させるには、画像を前処理および強化して、可能な限りこれらの欠陥を軽減することが不可欠です。Aspose.OCR for C++ は、認識中に画像内で潜在的に問題のある領域を 自動的に検出 できます。画像をプレビューするときに問題のある領域を強調表示したり、別の認識設定を使用して問題領域を OCR してより良い結果を得ることができます。
ぼやけた、歪んだ、コントラストの低い画像上のテキストを認識する - 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 は、1 回の呼び出しで複数の画像を認識できるさまざまなバッチ処理メソッドを提供することで、すべての画像を 1 つずつ認識する必要がなくなります。
- 複数ページの 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);