画像の傾き補正

Java Cloud SDKを使用した画像の傾き補正またはPDFの傾き補正

仕事や個人的な使用のために私たちが受け取るラスター画像の多くは、デジタル スキャナーでスキャンされた画像であるか、モバイル デバイスからの画像である可能性があります。そのため、画像内のテキストが適切に配置されておらず、水平方向または垂直方向にページの余白を越えてしまう可能性がかなりあります。簡単に言うと、スキャナー上でスキャンされた画像が傾いている (用紙が移動/回転している) ことがよくあります。このような問題を解決するために、傾き補正と呼ばれる技術を選択します。これは、画像を傾きと同じ量だけ逆方向に回転させることで傾きを除去するプロセスです。デスキュー機能は、画像がスキャナから取得された場合、自動画像処理において非常に役立ちます。

この記事では、Java Cloud SDK を使用して画像の傾きを補正する方法について詳しく説明します。したがって、デスキュー機能は 2 つのステップで動作します。つまり、画像の傾き角度を検出し、次に画像を回転して傾きを修正します。この操作を受信した FAX に適用し、画像上の情報 (テキスト) を使用して、用紙の余白ではなく回転角度を計算して要件を達成できます。それにもかかわらず、画像のスキュー調整操作は 1 ビット、8 ビット、および 24 ビットのカラー画像に対して実行できることを理解しています。

画像の傾き補正 API

画像をサポートするために、クラウド上の画像ファイルを操作する機能を提供する REST ベースの API を用意しています。 Java アプリケーションに関しては、Java コード経由で画像処理機能を実装できるようにする Aspose.Imaging Cloud SDK for Java を特別に開発しました。 Java クラウド SDK を使用してイメージをデスキューするための最初のステップは、pom.xml (Maven ビルド タイプ プロジェクト) に次の情報を含めることにより、Java プロジェクトにその参照を追加することです。

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>https://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>

<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-imaging-cloud</artifactId>
        <version>22.4</version>
    </dependency>
</dependencies>

次のステップは、クラウド ダッシュボード からクライアントの認証情報を取得することです。Aspose クラウド ダッシュボード のアカウントをお持ちでない場合は、有効な電子メール アドレスを使用して無料のアカウントを作成してください。次に、新しく作成したアカウントを使用してログインし、Aspose Cloud Dashboard でクライアント ID とクライアント シークレットを検索/作成します。

Java を使用したオンライン画像の傾き補正

Java コード スニペットを使用して画像の傾きを補正する方法を詳しく見てみましょう。この例では、ローカル ドライブから TIFF 画像をロードし、写真のデスキュー操作を適用します。結果のファイルはクラウド ストレージに保存されます。

  • まず、パーソナライズされたクライアント資格情報に基づいて ImagingApi のオブジェクトを作成します。
  • 次に、画像のサイズを比例的に変更することを示すブール変数を作成します。
  • 次に、readAllBytes(…) メソッドを使用してソース TIFF のコンテンツを読み取り、byte[] 配列に渡します。
  • 次のステップでは、CreateDeskewedImageRequest のインスタンスを作成します。これには、バイト配列、背景色のオプションのパラメーター、および結果のデスキュー写真の名前が必要です。
  • 最後に、createDeskewedImage(…) メソッドを呼び出して画像のスキューを補正します。結果の TIFF はクラウド ストレージに保存されます
// https://dashboard.aspose.cloud/ から ClientID と ClientSecret を取得します。
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// イメージングオブジェクトを作成する
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// 傾き補正された画像を比例的にサイズ変更する変数を設定します
boolean resizeProportionally = true;
			
// 背景色の情報
String bkColor = "white";

// ローカルドライブからファイルをロードする
File f = new File("DeskewSampleImage.tiff");

// TIFF画像の内容をバイト配列に読み込みます。
byte[] inputStream = Files.readAllBytes(f.toPath());
					    
// オブジェクトを作成して画像のデスキュープロパティを定義する
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,"Resultant.tiff",null);

// 写真の傾きを補正し、出力をクラウド ストレージに保存します
imageApi.createDeskewedImage(request);

結果の TIFF をローカル/ネットワーク ドライブに保存したい場合は、次のコード スニペットを使用してみてください。

// https://dashboard.aspose.cloud/ から ClientID と ClientSecret を取得します。
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// イメージングオブジェクトを作成する
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// 傾き補正された画像を比例的にサイズ変更する変数を設定します
boolean resizeProportionally = true;
			
// 背景色の情報
String bkColor = "white";

// ローカルドライブからファイルをロードする
File f = new File("DeskewSampleImage.tif");

// TIFF画像の内容をバイト配列に読み込みます。
byte[] inputStream = Files.readAllBytes(f.toPath());
					    
// オブジェクトを作成して画像のデスキュープロパティを定義する
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,null,null);

// 写真の傾きを補正し、出力をストリーム オブジェクトとして返します
byte[] updatedImage = imageApi.createDeskewedImage(request);

// 更新された TIFF 画像を保存するパス
Path path = Paths.get("/Users/nayyer/Documents/", "DeskewSampleImage_out.tif").toAbsolutePath();

// API を呼び出して写真のスキューを補正し、ローカル ドライブに保存します
Files.write(path, updatedImage);
デスキュー画像

写真の傾き補正プレビュー

上記の例で使用されているサンプル TIFF 画像は、DeskewSampleImage.tif からダウンロードできます。

cURL コマンドを使用した PDF の傾き補正

傾き補正された画像を含む PDF ファイルを受け取る場合があるため、簡単な解決策の 1 つは、PDF ファイルから画像を抽出し、画像の傾きを補正することです。この要件を達成するために、ここでは 2 つのクラウド API、つまり Aspose.PDF Cloud を使用して PDF ファイルから画像を抽出し、Aspose.Imaging Cloud を使用して写真の歪みを補正します。ただし、操作を実行する前に、まず次のコマンドを使用して JWT アクセス トークンを (クライアントの資格情報に基づいて) 生成する必要があります。

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bb959721-5780-4be6-be35-ff5c3a6aa4a2&client_secret=4d84d5f6584160cbd91dba1fe145db14" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

JWT トークンを取得したら、Aspose.PDF Cloud の GrayscaleImage API を使用して PDF 画像を抽出する必要があります。画像は TIFF 形式で抽出され、クラウド ストレージに保存されます。

curl -v -X PUT "https://api.aspose.cloud/v3.0/pdf/Resultant.pdf/pages/1/images/extract/tiff?width=0&height=0" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

画像が PDF ファイルから TIFF 形式として抽出されたので、次は、Aspose.Imaging Cloud の DeskewImage API を呼び出して画像の歪みを補正する必要があります。結果のファイルは応答ストリームで返されるので、それをローカル ドライブに保存できます。

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/image1.tiff/deskew?resizeProportionally=true&bkColor=White" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o Deskewed.tiff

結論

この時点までに、Java クラウド SDK を使用して画像のスキューを補正し、PDF のスキューを補正するための驚くべき簡単な手順をいくつか学びました。これで、Java コード スニペットまたは cURL コマンドを使用して要件を達成できるようになりました。同時に、製品ドキュメント を参照して、API が提供する他の魅力的な機能について詳しく学ぶことを強くお勧めします。

すべての Cloud SDK は MIT ライセンスに基づいて開発されているため、完全なソース コードは GitHub からダウンロードできることに注意してください。最後に、API の使用中に問題が発生した場合は、無料の 製品サポート フォーラム を通じて迅速な解決のために当社に連絡することを検討してください。

関連記事

詳細については、次のリンクを参照してください。