Python で画像の傾きを補正する | Python での画像の傾き補正

画像内の傾いたコンテンツを正しく位置合わせする方法を探している場合、ここは正しい場所にあります。この記事では、Pythonを使用した画像処理における傾き補正の方法を学びます。 Python でのスキュー補正の基本を説明します。画像の傾きを検出する方法、傾きの角度を計算する方法、Python を使用してプログラムで画像の傾きを補正する方法について説明します。

この記事では次のトピックについて説明します。

  1. [画像の傾き補正][1]
  2. Python スキュー補正 API
  3. Python でのスキュー検出
  4. [自動傾き補正][4]
  5. 画像の傾きを手動で補正する
  6. スキュー補正 - 無料リソース

画像の傾き補正

画像処理における傾き補正 (デスキューとも呼ばれます) は、傾いているか歪んでいる画像を位置合わせして、視覚的に魅力的で作業しやすいようにするプロセスです。以下の図に示すように、不適切なスキャン、遠近法の歪み、カメラの位置ずれなど、さまざまな理由でスキューが発生する可能性があります。

歪んだ画像

ソース画像。

画像の傾きを補正するための Python API

Aspose.OCR は、スキャンされた画像、スマートフォンの写真、スクリーンショット、画像の領域、スキャンされた PDF に対して Python を含むさまざまなプログラミング言語で OCR を実行できる、広く使用されている OCR ライブラリです。スキュー補正には Aspose.OCR for Python via .NET API を使用します。

コンソールで次の pip コマンドを使用して、パッケージをダウンロードするか、PyPI から API をインストールしてください。

pip install aspose-ocr-python-net

Python でスキュー角度を検出する

以下の手順に従って、画像内のテキストの傾き角度を簡単に検出できます。

  1. AsposeOCR クラスのインスタンスを作成します。
  2. OcrInput クラスのオブジェクトを初期化します。
  3. 画像を OcrInput 認識バッチに追加します。
  4. Calculateskew() メソッドを呼び出します。画像パスを引数として受け取ります。
  5. 計算されたスキュー角度を表示します。

次のサンプル コードは、Python で画像の傾き角度を検出する方法を示しています。

import aspose.ocr as ocr

# Aspose.OCR API をインスタンス化する
api = ocr.AsposeOcr()

# 認識バッチに画像を追加する
img = ocr.OcrInput(ocr.InputType.SINGLE_IMAGE)
img.add("D:\\Files\\source.png")

# スキュー角度の検出
angles = api.calculate_skew(img);
for angle in angles:
    print("File: " + angle.source)
    print(f"Skew angle: {angle.angle:.1f}\xb0")
File: D:\Files\source.png
Skew angle: 5.8°

Python での自動スキュー補正

以下の手順に従って、自動傾き補正を有効にし、補正された画像を保存できます。

  1. AsposeOCR クラスのインスタンスを作成します。
  2. PreprocessingFilter クラスのオブジェクトを初期化します。
  3. autoskew() フィルターを追加します。
  4. その後、画像を認識バッチに追加し、OcrInput クラスを使用して処理フィルターを適用します。
  5. 最後に、ImageProcessing.save() メソッドを呼び出して、処理された画像を指定されたパス フォルダーに保存します。

次のサンプル コードは、Python で前処理フィルターを使用して自動スキュー補正を適用する方法を示しています。

import aspose.ocr as ocr

# Aspose.OCR API をインスタンス化する
api = ocr.AsposeOcr()

# 画像処理の初期化
filters = ocr.models.preprocessingfilters.PreprocessingFilter()
filters.add(filters.auto_skew())

# 画像を認識バッチに追加し、処理フィルターを適用します
img = ocr.OcrInput(ocr.InputType.SINGLE_IMAGE, filters)
img.add("D:\\Files\\source.png")

# 処理した画像を「結果」フォルダーに保存します
ocr.ImageProcessing.save(img, "D:\\Files\\Output\\")
Python のフィルターを使用した自動スキュー補正

Python のフィルターを使用した自動歪み補正。

Python で画像の傾きを手動で補正する

手動スキュー補正の場合は、以下の手順に従って手動でスキュー角度を定義できます。

  1. AsposeOCR クラスのインスタンスを作成します。
  2. PreprocessingFilter クラスのオブジェクトを初期化します。
  3. rotate() フィルターを追加します。
  4. その後、画像を認識バッチに追加し、OcrInput クラスを使用して処理フィルターを適用します。
  5. 最後に、ImageProcessing.save() メソッドを呼び出して、処理された画像を指定されたパス フォルダーに保存します。

次のサンプル コードは、Python で画像を手動でデスキューする方法を示しています。

import aspose.ocr as ocr

# Aspose.OCR API をインスタンス化する
api = ocr.AsposeOcr()

# 画像処理の初期化
filters = ocr.models.preprocessingfilters.PreprocessingFilter()
filters.add(ocr.models.preprocessingfilters.PreprocessingFilter.rotate(5.8))

# 画像を認識バッチに追加し、処理フィルターを適用します
img = ocr.OcrInput(ocr.InputType.SINGLE_IMAGE, filters)
img.add("D:\\Files\\source.png")

# 処理した画像を「結果」フォルダーに保存します
ocr.ImageProcessing.save(img, "D:\\Files\\Output\\")

無料ライセンスを取得する

無料の一時ライセンスを取得して、評価制限なしで .NET 経由で Aspose.OCR for Python を試すことができます。

スキュー補正 - 無料リソース

Python で画像の傾き補正を実装するほかに、次のリソースを使用して Python OCR API をさらに調べることもできます。

結論

この記事では、Python の画像の傾き補正を使用して傾いた画像を正しく位置合わせする方法を学びました。自動方法と回転角度を手動で設定して画像の傾きを補正する方法を説明しました。 .NET 経由で Aspose.OCR for Python を利用すると、そのような機能を Python アプリケーションに簡単に組み込むことができます。不明な点がある場合は、無料サポート フォーラムまでお気軽にお問い合わせください。

関連項目