逆画像検索と傾いた画像のリアルタイム補正は、ビジュアル検索機能を構築する開発者にとって一般的な課題です。 Aspose.CAD Cloud SDK for .NET は、C# で逆画像検索と画像のデスキュー(傾き補正)を簡素化する強力なライブラリを提供します。このガイドでは、PNG のデスキュー方法、Bing Visual Search を使用した逆検索の呼び出し、そして簡潔なコードと cURL の例を用いた全体ワークフローの統合方法を紹介します。

開始する前に: 前提条件とインストール

このチュートリアルを実行するには、以下が必要です:

  • .NET 6.0 以降と Visual Studio 2022 などの IDE。
  • Aspose Cloud アカウント(API キーとクライアントシークレットが必要)。
  • Bing Visual Search API へのアクセス(サブスクリプションキーが必要)。
  • プロジェクト フォルダーに配置された入力画像ファイル (input.png)。

NuGet を介してライブラリをインストールします:

dotnet add package Aspose.cad-Cloud

最新のパッケージをダウンロードページからダウンロードしてください。インストール後、ワークフローのコーディングを開始できます。

ステップバイステップで構築: 逆画像検索と画像デスキューイング in .NET

実装は5つの論理的なステップに分割されています。各ステップでは、完全な例から抽出された関連コードのみが表示されます。

ステップ 1: ソース画像を読み込む

PNG ファイルをバイト配列に読み込み、ライブラリが使用できるメモリストリームを作成します。

string inputImagePath = "input.png";
byte[] inputBytes = File.ReadAllBytes(inputImagePath);
using var inputStream = new MemoryStream(inputBytes);

ステップ 2: Aspose.CAD Cloud Library を構成する

APIキーとベースURLで構成オブジェクトを作成し、ImageApi をインスタンス化します。

var config = new Configuration
{
    ApiKey = "YOUR_ASPOSE_CAD_CLOUD_API_KEY",
    BasePath = "https://api.aspose.cloud"
};
var imageApi = new ImageApi(config);

詳細については、API リファレンスをご覧ください。

ステップ 3: ライブラリを使用して画像の傾き補正

画像ストリームで DeskewImageRequest を作成し、デスケー操作を呼び出します。

var deskewRequest = new DeskewImageRequest
{
    ImageData = inputStream
    // Optional: Angle, BackgroundColor can be set here
};
byte[] deskewedBytes = await imageApi.PostImageDeskewAsync(deskewRequest);

ステップ 4: 傾き補正画像を保存

返されたバイト配列を書き込み、新しいファイルに保存します。

string deskewedImagePath = "deskewed.png";
File.WriteAllBytes(deskewedImagePath, deskewedBytes);
Console.WriteLine($"Deskewed image saved to {deskewedImagePath}");

ステップ5: Bing Visual Search API を使用して逆画像検索を実行する

HttpClient を作成し、サブスクリプション キー ヘッダーを追加し、元の画像を Bing に投稿します。

string bingSubscriptionKey = "YOUR_BING_VISUAL_SEARCH_SUBSCRIPTION_KEY";
string bingEndpoint = "https://api.bing.microsoft.com/v7.0/images/visualsearch";

using var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", bingSubscriptionKey);

using var multipartContent = new MultipartFormDataContent();
var imageContent = new ByteArrayContent(inputBytes);
imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/octet-stream");
multipartContent.Add(imageContent, "image", Path.GetFileName(inputImagePath));

HttpResponseMessage response = await httpClient.PostAsync(bingEndpoint, multipartContent);
string jsonResult = await response.Content.ReadAsStringAsync();

Console.WriteLine("Reverse Image Search Result:");
Console.WriteLine(jsonResult);

これらの手順に従うことで、C# で完全な逆画像検索と画像デスキュー(傾き補正)ワークフローが実現できます。

逆画像検索と画像デスキュー自動化の完全動作例

以下の例は、すべてのパーツを組み合わせて単一のコンソール アプリケーションにする方法を示しています。

using System;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Aspose.CAD.Cloud.Sdk.Api;
using Aspose.CAD.Cloud.Sdk.Client;
using Aspose.CAD.Cloud.Sdk.Model;

namespace ReverseImageSearchDeskew
{
    class Program
    {
        static async Task Main(string[] args)
        {
            // Aspose.CAD Cloud configuration
            var config = new Configuration
            {
                ApiKey = "YOUR_ASPOSE_CAD_CLOUD_API_KEY",
                BasePath = "https://api.aspose.cloud"
            };
            var imageApi = new ImageApi(config);

// File paths
            string inputImagePath = "input.png";
            string deskewedImagePath = "deskewed.png";

// Load input image
            byte[] inputBytes = File.ReadAllBytes(inputImagePath);
            using var inputStream = new MemoryStream(inputBytes);

// Deskew the image using Aspose.CAD Cloud
            var deskewRequest = new DeskewImageRequest
            {
                ImageData = inputStream
                // Additional optional parameters (e.g., Angle, BackgroundColor) can be set here
            };
            byte[] deskewedBytes = await imageApi.PostImageDeskewAsync(deskewRequest);
            File.WriteAllBytes(deskewedImagePath, deskewedBytes);
            Console.WriteLine($"Deskewed image saved to {deskewedImagePath}");

// Reverse image search using Bing Visual Search API
            string bingSubscriptionKey = "YOUR_BING_VISUAL_SEARCH_SUBSCRIPTION_KEY";
            string bingEndpoint = "https://api.bing.microsoft.com/v7.0/images/visualsearch";

using var httpClient = new HttpClient();
            httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", bingSubscriptionKey);

using var multipartContent = new MultipartFormDataContent();
            var imageContent = new ByteArrayContent(inputBytes);
            imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/octet-stream");
            multipartContent.Add(imageContent, "image", Path.GetFileName(inputImagePath));

HttpResponseMessage response = await httpClient.PostAsync(bingEndpoint, multipartContent);
            string jsonResult = await response.Content.ReadAsStringAsync();

Console.WriteLine("Reverse Image Search Result:");
            Console.WriteLine(jsonResult);
        }
    }

// Request model for deskew operation (matches Aspose.CAD Cloud SDK expectations)
    public class DeskewImageRequest
    {
        public Stream ImageData { get; set; }
        // Optional: public double? Angle { get; set; }
        // Optional: public string BackgroundColor { get; set; }
    }
}

Note: このコード例はコア機能を示しています。プロジェクトで使用する前に、ファイルパスや構成値が実際の環境に合わせて更新されていることを確認し、必要な依存関係がすべて正しくインストールされているかを検証し、開発環境で十分にテストしてください。問題が発生した場合は、公式ドキュメント または サポートチーム にお問い合わせください。

cURL を使用した REST API で同じ操作を実行する

純粋な REST アプローチを好む場合、同じワークフローを cURL コマンドで実行できます。

1. 認証してアクセストークンを取得する

curl -X POST "https://api.aspose.cloud/connect/token" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"

2. ソースPNGをアップロードして、デスキュー処理をリクエストする

curl -X PUT "https://api.aspose.cloud/v3.0/cad/deskew" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary @input.png \
     -o deskewed.png

3. 逆画像検索のために Bing Visual Search を呼び出す

curl -X POST "https://api.bing.microsoft.com/v7.0/images/visualsearch" \
     -H "Ocp-Apim-Subscription-Key: YOUR_BING_VISUAL_SEARCH_SUBSCRIPTION_KEY" \
     -F "image=@input.png;type=application/octet-stream"

これらのコマンドは、C# コードで示された手順と同一の操作を実行し、シェルスクリプトを実行できる任意の環境に機能を統合できるようにします。

追加のパラメータとレスポンス形式については、公式 API ドキュメントをご覧ください。

結論

C# で逆画像検索と画像のデスクューイングを実装することは、Aspose.CAD Cloud SDK for .NET を使用すれば簡単になります。ライブラリは画像前処理を担当し、Bing Visual Search が強力な逆検索機能を提供します。上記の手順に従うことで、クエリを実行する前に傾いた入力を補正する堅牢なビジュアル検索パイプラインを構築できます。製品ページで価格詳細を確認し、一時ライセンスページ から一時ライセンスを取得して、実運用で有効なライセンスを取得することを忘れないでください。コードと cURL の例が用意されているので、この機能をアプリケーションに統合する準備が整いました。

よくある質問

  • C# アプリケーションでリバース画像検索と画像デスキューは何を実現しますか?
    アップロードされた画像の向きを自動的に補正し、外部検索サービスを使用して視覚的に類似した項目を見つけることができ、ユーザーエクスペリエンスと検索精度を向上させます。

  • PNG以外の画像フォーマットでもライブラリは使用できますか?
    はい、ライブラリはJPGやBMPなどの一般的なラスターフォーマットをサポートしています。コード内のファイル拡張子を変更するだけです。

  • このコードを実行するためにサービスをホストする必要がありますか?
    いいえ、Aspose.CAD Cloud SDK for .NET はクラウドベースのライブラリであり、すべての処理は Aspose のサーバーで行われます。インターネット接続と有効な認証情報さえあれば実行できます。

  • 大量の画像バッチを効率的に処理するにはどうすればよいですか?
    画像を非同期で処理し、デスクューされた結果をキャッシュし、複数の API 呼び出しで同じアクセストークンを再利用します。これによりレイテンシと API のオーバーヘッドが削減されます。

もっと読む