C#でOCRの画像の向きを修正する
IronOCRは、回転、傾き補正、拡大縮小の方法で画像の向きの問題を修正します。 .NETアプリケーションで正確なOCRテキスト抽出を行うために、これらの変換を連鎖させて、傾いたスキャン、上下逆さまの文書、不適切なサイズの画像を修正します。
クイックスタート: 1行で回転、傾き補正、拡大縮小
IronOCRのOcrInputメソッドを連鎖させ、1回の呼び出しで画像の回転、傾き補正、拡大縮小を行います。
今すぐ NuGet で PDF を作成してみましょう:
NuGet パッケージ マネージャーを使用して IronOCR をインストールします
このコード スニペットをコピーして実行します。
var result = new IronOcr.OcrInput().LoadImage("skewed.png").Rotate(90).Deskew(45).Scale(150).Let(input => new IronOcr.IronTesseract().Read(input));実際の環境でテストするためにデプロイする
最小限のワークフロー(5ステップ)
- 画像の向きを修正するためのC#ライブラリをダウンロードする
- 読み取り用にPDFドキュメントと画像をインポートする
- 回転、傾き矯正、スケールなどの望ましい向き補正を適用します
- ビューイング用に修正された画像をエクスポート
- OCR処理に
Readメソッドを活用する
IronOCRで画像を回転させるには?
回転させることで、画像の向きを特定の角度だけ変え、テキストが直立し、正しく配置されるようにします。 スキャナで読み取った文書や、不恰好な角度で撮影された写真を修正します。
Rotate メソッドに次数の値を渡します。 正の値は時計回りに回転し、負の値は反時計回りに回転します。回転は画像の中心点を中心に行われ、コンテンツの向きを調整しながら元の寸法を維持します。
画像の回転はいつ使うべきですか?
画像回転は、スキャンまたは撮影された文書の向きが正しくない場合に修正します。 よくあるシナリオは以下のとおりです:
- 逆さままたは横向きにスキャンされた文書
- 向きの変更が必要なモバイル写真
- ページの向きが統一されていない複数ページのドキュメント
- スキャン基準が異なる歴史的アーカイブ
- パスポートのスキャンでは、方向が異なります。
- さまざまなカメラアングルからのナンバープレート認識。
自動回転検出には、テキスト解析によって正しい方向を決定するIronOCRのDetectPageOrientationメソッドを使用してください。
どの程度の値が最適ですか?
一般的な回転値は、90度の倍数(90、180、270)です。 IronOCRは微調整のための度数値をサポートします:
- 90度/-270度:横から縦への変換
- 180度:逆さまドキュメント
- 270度/90度:縦から横への変換
- 小さな角度(1~10度):デスクウィングは、わずかな傾きに対してよりよく機能することがよくありますが、軽微な調整です。
古い機器からスキャンした文書の場合は、回転を他の前処理ステップと組み合わせてください。
回転は OCR の精度にどのように影響しますか?
OCRの精度を高めるためには、適切な回転が不可欠です。 IronOCRのTesseract 5エンジンは左から右、上から下のテキストフローを想定しています。 テキストがずれる原因
:path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-rotate-image.csusing IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("paragraph_skewed.png");
// Rotate the image 180 degrees clockwise
imageInput.Rotate(180);
// Export the modified image
imageInput.SaveAsImages("rotate");SaveAsImagesメソッドを使用して、変更した画像をエクスポートします。 以下は、回転前と回転後の画像です。

ビフォー

アフター
傾いた画像の傾きを補正するにはどうすればよいですか?
傾いた画像や斜めになった画像を傾き補正し、テキストを水平に揃えます。 この翻訳では、スキャナで斜めに置かれた文書や、微妙な角度で撮影された写真を修正します。
Deskewメソッドでデスキューを適用します。 補正する最大スキュー角度を整数で指定します。 値を高くすると、より多くの修正が可能になりますが、処理速度が遅くなり、ページが上下逆さまになるなどのエラーが発生する危険性があります。 デフォルトの最大15度は、ほとんどのシナリオを効果的に処理します。
デスキューにはどのような角度値を使用すればよいですか?
最適なスキュー角度は、文書の品質と要件によって異なります:
- デフォルト(パラメータなし):ほとんどのドキュメントの自動検出
- 5~15度:正確さとスピードのバランスをとりながら、少し傾けたスキャンを行う。
- 15~30度:著しく歪んだ文書; 20度を超える角度については、回転を考慮してください。
- 30度以上:オーバーコレクトの可能性があります; 画像フィルタを代わりに使用してください。
大きく傾いたドキュメントには、傾き補正と画像最適化フィルタを組み合わせてください。 フィルタウィザードは、最適な前処理ステップを特定するのに役立ちます。
デスキューイングが最も効果的なのはいつですか?
デスキューイングは次のような場合に最適です:
- テキストが多く、水平線がはっきりしている文書
- フォームおよび構造化ドキュメント
- 書籍や雑誌からスキャンしたページ
- 一貫した傾きを持つ複数ページのTIFFファイル。
- 正確な位置合わせが必要な金融文書。
あまり効果的ではありません:
- 不規則なベースラインの手書きテキスト
- テキストの向きが複数ある画像
- 重いグラフィックや表を含む文書。
- すでに適切に配置されているスクリーンショット。
過修正の問題を避けるにはどうすればよいですか?
以下の方法で、デスキュー問題を防いでください: 1.保守的な角度制限(10~15度)から始める。 2.OcrResultの信頼スコアを使用して修正を検証する 3.複合問題のローテーション後のデスキューの適用 4.バッチ処理前のサンプル文書のテスト 5.progress tracking を大規模バッチに使用する 6.abort トークンを長時間実行する操作のために実装する。
:path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-rotate-image.csusing IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("paragraph_skewed.png");
// Rotate the image 180 degrees clockwise
imageInput.Rotate(180);
// Export the modified image
imageInput.SaveAsImages("rotate");
ビフォー

アフター
より良い OCR のために画像を拡大縮小するにはどうすればよいですか?
スケーリングは、一貫したテキスト認識のために画像のサイズを標準化します。 適切なスケーリングにより、テキストが小さすぎて正確に検出できなかったり、大きすぎて効率的に処理できなかったりすることはありません。
Scaleメソッドでパーセンテージ値を使用してスケーリングを適用します(100%は効果がないことを意味します)。 2番目のパラメータであるScaleCropAreaは、クロップ領域が比例して拡大縮小するかどうかを決定します('true'を推奨)。 テキストの歪みを防ぐため、アスペクト比を維持したスケーリングを行っています。
最適な比率はどのくらいですか?
最適なスケーリングは、ソースの解像度とOCR要件によって異なります:
- 50~80%:高速処理のための高解像度スキャン(600DPI以上
- 100%:拡大縮小なし、オリジナル寸法
- 120-150%:文字認識を強化するための低解像度画像
- 200%以上:DPI設定の方がうまくいくかもしれませんが、非常に小さなテキストです。
最良の結果を得るために、テキストの高さは20~30ピクセルを目標としてください。 解像度の最適化に関する詳しいガイダンスについては、optimizing image DPI for Tesseractをご覧ください。
スケーリングは OCR のパフォーマンスにどのように影響しますか?
スケーリングは精度とスピードに影響します:
- ダウンスケーリング(100%以下):処理が速くなりますが、細かいディテールが失われる可能性があります。
- アップスケーリング(100%以上):小さなテキストの精度が向上しますが、処理が遅くなります。
- メモリ使用量: 画像の大きさによって二次関数的に変化します。
- 処理時間: 次元が大きくなるほど長くなります。
パフォーマンスの最適化については、fast OCR configuration および multithreading for speed を参照してください。
どのような場合に ScaleCropArea を使用すべきですか?
ScaleCropAreaは、次のような場合に使用してください:
- 特定の画像領域で作業する。
- 定義されたフィールドを持つフォームの処理
- アイデンティティ文書データの抽出
- バーコード読み取りのポジションを維持すること。
- MICR 小切手を特定のゾーンで読み取る。
オリジナルのクロップ座標が必要な場合を除き、trueに設定してください。
:path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-rotate-image.csusing IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("paragraph_skewed.png");
// Rotate the image 180 degrees clockwise
imageInput.Rotate(180);
// Export the modified image
imageInput.SaveAsImages("rotate");異なるスケール値はどのように比較されますか?
以下の比較は、スケーリングが寸法とテキストの明瞭さにどのように影響するかを示しています。 適度なスケーリングにより、処理要件を調整しながら読みやすさを維持します:
.
複合修正のベストプラクティスは何ですか?
最適な結果を得るために、この順序で修正を加えてください: 1.ローテーションを最初に行い、主要な方向性の問題を解決する。 2.アライメントを微調整するためのデスキュー。 3.スケーリングによるOCR処理の最適化
このような順序を踏むことで、誤りを重ねることなく、各修正が前の修正の上に積み重ねられていきます。 複雑な処理が必要な場合は、IronOCRの包括的な画像フィルターと画質補正ツールをご利用ください。
どのようにすべての方向修正を組み合わせますか?
包括的な画像準備のために複数の補正を連鎖させること:
/* :path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-combined.cs */
using IronOcr;
// Create OCR engine with optimized configuration
IronTesseract ocrTesseract = new IronTesseract();
// Load and process image with all corrections
using var imageInput = new OcrImageInput("skewed_document.png");
// Apply corrections in optimal sequence
imageInput
.Rotate(90) // Fix major orientation
.Deskew(15) // Correct minor tilts
.Scale(150, true); // Enhance for OCR
// Perform OCR on corrected image
OcrResult result = ocrTesseract.Read(imageInput);
// Access extracted text
string extractedText = result.Text;/* :path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-combined.cs */
using IronOcr;
// Create OCR engine with optimized configuration
IronTesseract ocrTesseract = new IronTesseract();
// Load and process image with all corrections
using var imageInput = new OcrImageInput("skewed_document.png");
// Apply corrections in optimal sequence
imageInput
.Rotate(90) // Fix major orientation
.Deskew(15) // Correct minor tilts
.Scale(150, true); // Enhance for OCR
// Perform OCR on corrected image
OcrResult result = ocrTesseract.Read(imageInput);
// Access extracted text
string extractedText = result.Text;結果を向上させる追加の前処理はどれですか?
方向修正だけでなく、以下のような機能強化もご検討ください:
- 色あせた文書の色補正。
- ノイズ除去のための品質フィルタ。
- コンピュータビジョンのテキストロケーション
- ハイライト テキストのデバッグで修正を確認します。
バッチ処理では、asyncサポートを実装し、複数のドキュメントを効率的に処理できるようにします。 タイムアウトを使用して、大規模な処理を監視します。
修正した画像をエクスポートするにはどうすればよいですか?
検証またはさらなる使用のために、処理された画像をエクスポートします:
- 単一の画像:
SaveAsImages()メソッド - テキストを埋め込んだ検索可能なPDF。
- hOCR HTMLエクスポートウェブ統合用
- PDF streams for クラウド・ストレージ
複雑なワークフローを実装する前に、シンプルな1行OCRで修正をテストしてください。
よくある質問
OCR処理の前に、傾いた画像や斜めの画像を修正するにはどうすればよいですか?
IronOCRはOcrInputクラスを通して強力な画像方向補正を提供します。Rotate()、Deskew()、Scale()などのメソッドを連鎖させて、傾いたスキャン画像、上下逆さまの文書、不適切なサイズの画像を修正することができます。たとえば、input.Rotate(90).Deskew(45).Scale(150) を使用すると、テキスト抽出の前に1行で複数の補正を適用できます。
ドキュメントの向きが異なる場合、どのような回転角度を使用すればよいですか?
IronOCRはあらゆる回転角度をサポートしますが、一般的な値は以下の通りです:横から縦への変換には90度、逆さまの文書には180度、縦から横への変換には270度です。わずかな調整(1-10度)の場合、IronOCRの傾き補正()メソッドを使うと、少し傾いた文書でも良い結果が得られます。
ドキュメントの正しい向きを自動的に検出できますか?
はい、IronOCRにはDetectPageOrientationメソッドがあり、テキスト解析によって正しい向きを自動的に決定します。この機能は、歴史的なアーカイブや様々なソースからの複数ページのドキュメントなど、方向が一貫していないドキュメントのバッチを処理するときに特に便利です。
画像補正に回転と傾き補正のどちらを使うべきですか?
IronOCRのRotate()メソッドは、ドキュメントが完全に横向きや上下逆さまになっている場合に、主要な方向(90度、180度、270度)の問題に対して使用します。スキャンされた文書によく見られるわずかな傾きや歪みにはDeskew()メソッドを使います。両方のメソッドを連鎖させることで、不十分なスキャン画像を総合的に補正することができます。
OCRの精度を高めるために画像を拡大縮小するにはどうすればよいですか?
IronOCRのScale()メソッドでは、画像のサイズをパーセント単位で変更することができます。例えば、Scale(150)は画像サイズを50%増加させ、低解像度のスキャンのOCR精度を向上させます。これは回転や傾き補正と組み合わせて総合的な画像前処理を行う場合に特に便利です。







