リバース画像検索 API

私たちは、Aspose.Imaging Cloud APIに新しく導入された機能についてお知らせできることを嬉しく思います。これにより、逆画像検索のためのウェブベースの画像ソースがサポートされるようになりました。画像の歪みを修正する機能は、APIが他に類を見ないものであることを示しています。私たちは、お客様に可能な限り最高のソリューションを提供するために、継続的に作業を行い、改善に努めています。

リバース画像検索は、重複または類似の画像を見つけるのに役立ちます。また、不適切なまたはグラフィックコンテンツを監視するのにも役立ちます。リバース検索を使用してデジタル署名された画像を検索することで、著作権侵害や商標の偽造にも対抗できます。さらに、画像の歪み補正は Aspose.Imaging Cloud API に付加価値を与える別の機能です。これは、歪んだ画像が存在するスキャンされた PDF ドキュメントにも関連しています。このような PDF ドキュメントは、画像を歪み補正することで結果を改善できる検索可能な PDF ドキュメントにしばしば変換されます。これらの機能を以下に詳述しましょう。

Aspose.Imaging Cloud SDK for Pythonを使用した画像逆検索

いくつかのSDKがAspose.Imaging Cloud APIと通信するために利用可能です。SDKはすべての細かい詳細を処理するため、あなたは手間いらずで要件を進めることができます。SDKには .NETJavaPythonPHPRubyAndroid、および Node.js が含まれています。ここではPythonの例を用いて作業します:

まず最初に、Aspose.Cloudで無料の サインアップ が必要です。 Python 2.7 以降 をインストールし、その後、以下の PyPi パッケージ を requirements.txt に追加してください。

aspose-imaging-cloud>=20.1

依存関係を以下のようにインポートしてください:

import aspose-imaging-cloud

以下の Python コードを使用して、API を呼び出し、機能をテストできます:

    def search_image_from_web_source(self):
        """Finds the similar images from the URL source"""
        print('Finds similar images from URL:')

        similarity_threshold = 30.0
        max_count = 3
        folder = ImagingAiBase.CLOUD_PATH  # Folder with image to process
        storage = None  # We are using default Cloud Storage

        # ウェブサイトから画像を検索コンテキストに追加します
        image_source_url = urllib.quote_plus('https://www.f1news.ru/interview/hamilton/140909.shtml')
        self._imaging_api.create_web_site_image_features(
            requests.CreateWebSiteImageFeaturesRequest(self._search_context_id, image_source_url, folder, storage))

        self._wait_idle(self._search_context_id)

        # ウェブサイトから画像をダウンロードしてください。
        image_data = req.get('https://cdn.f1ne.ws/userfiles/hamilton/140909.jpg')
        path = os.path.abspath(os.path.join(ImagingAiBase.OUTPUT_FOLDER, 'WebSearchSample.jpg'))
        with open(path, "wb") as f:
            f.write(image_data.content)

        # ダウンロードした画像をリサイズして、検索エンジンの機能を示します。
        resized_image = self._imaging_api.create_resized_image(requests.CreateResizedImageRequest(
            path, 600, 400, "jpg", storage=storage))

        # クラウドに画像をアップロードする
        image_name = 'ReverseSearch.jpg'
        self._imaging_api.upload_file(requests.UploadFileRequest(ImagingAiBase.CLOUD_PATH + "/" + image_name,
                                                                 resized_image, storage))

        # 検索コンテキスト内で類似の画像を見つける
        find_response = self._imaging_api.find_similar_images(
            requests.FindSimilarImagesRequest(self._search_context_id, similarity_threshold, max_count,
                                              image_id=ImagingAiBase.CLOUD_PATH + "/" + image_name,
                                              folder=folder, storage=storage))

        print('Similar images found: ' + str(len(find_response.results)))
        print('Similar image id: ' + find_response.results[0].image_id)
        print('Similarity: ' + str(find_response.results[0].similarity))

ウェブサイトベースの画像ソースによる逆画像検索は、この例で詳しく説明されています。APIの効率を示すために、画像のサイズ変更の追加ステップが含まれています。画像サイズは異なる可能性がありますが、APIは信頼性が高く正確な結果を生成します。以下は出力のスクリーンショットです:

APIレスポンスのパラメータによって、類似画像の数、URL、および類似性のパーセンテージが表示されることに気付くことができます。

Image Deskewing using Aspose.Imaging Cloud SDK for .NET

画像は多くの情報を含んでおり、画像処理は最近重要性を増しています。非常に一般的な使用例は、スキャンしたPDFドキュメントや、しばしば携帯電話のカメラからの画像における歪んだ画像です。Aspose.Imaging Cloud APIには、画像の補正機能が追加されました。BMP、GIF、JPEG、JPEG2000、PSD、TIFF、WEBP、PNG形式の画像を補正できます。TIFF画像を補正するための.NETの例を考えてみましょう。

using System;
using System.IO;
using Aspose.Imaging.Cloud.Sdk.Api;
using Aspose.Imaging.Cloud.Sdk.Model.Requests;

namespace AsposeImagingCloudSdkExamples
{
    /// <summary>
    /// 画像のデスキュー例。
    /// </summary>
    /// <seealso cref=\"AsposeImagingCloudSDKExamples.ImagingBase\" />
    class DeskewImage : ImagingBase
    {
        /// <summary>
        /// <see cref=\"DeskewImage\"/> クラスの新しいインスタンスを初期化します。
        /// </summary>
        /// <param name=\"imagingApi\">イメージングAPIです。</param>
        public DeskewImage(ImagingApi imagingApi) : base(imagingApi)
        {
            PrintHeader("Deskew image example:");
        }

        /// <summary>
        /// サンプル画像ファイルの名前を取得します。
        /// </summary>
        /// <value>
        /// 例の画像ファイルの名前。
        /// </value>
        /// <remarks>
        /// 入力形式は以下のいずれかになることがあります:
        /// BMP、GIF、JPEG、JPEG2000、PSD、TIFF、WEBP、PNG
        /// </remarks>
        protected override string SampleImageFileName => "Sample_05_Scan1_SkewToLeft.tif";

        private const string SaveImageFormat = "tif";

        /// <summary>
        /// クラウドストレージから画像をデスクューします。
        /// </summary>
        public void DeskewImageFromStorage()
        {
            Console.WriteLine("Deskew the image from cloud storage");

            UploadSampleImageToCloud();

            bool resizeProportionally = true;
            string bkColor = "white";
            string folder = CloudPath; // Input file is saved at the Examples folder in the storage
            string storage = null; // We are using default Cloud Storage

            var request = new DeskewImageRequest(SampleImageFileName, resizeProportionally, bkColor, folder, storage);

            Console.WriteLine($"Call DeskewImage with params: resizeProportionally:{resizeProportionally}, bkColor:{bkColor}");

            using (Stream updatedImage = this.ImagingApi.DeskewImage(request))
            {
                SaveUpdatedSampleImageToOutput(updatedImage, false, SaveImageFormat);
            }

            Console.WriteLine();
        }

        /// <summary>
        /// 既存の画像の歪みを修正し、更新された画像をクラウドストレージにアップロードします。
        /// </summary>
        public void DeskewImageAndUploadToStorage()
        {
            Console.WriteLine("Deskews the image and upload to cloud storage");

            UploadSampleImageToCloud();

            bool resizeProportionally = true;
            string bkColor = null;
            string folder = CloudPath; // Input file is saved at the Examples folder in the storage
            string storage = null; // We are using default Cloud Storage

            var request = new DeskewImageRequest(SampleImageFileName, resizeProportionally, bkColor, folder, storage);

            Console.WriteLine($"Call DeskewImage with params: resizeProportionally:{resizeProportionally}, bkColor:{bkColor}");

            using (Stream updatedImage = this.ImagingApi.DeskewImage(request))
            {
                UploadImageToCloud(GetModifiedSampleImageFileName(false, SaveImageFormat), updatedImage);
            }

            Console.WriteLine();
        }

        /// <summary>
        /// 画像を Deskew します。画像データはリクエストストリームで渡されます。
        /// </summary>
        public void CreateDeskewedImageFromRequestBody()
        {
            Console.WriteLine("Deskews the image from request body");

            using (FileStream inputImageStream = File.OpenRead(Path.Combine(ExampleImagesFolder, SampleImageFileName)))
            {
                bool resizeProportionally = true;
                string bkColor = "white";
                string storage = null; // We are using default Cloud Storage
                string outPath = null; // Path to updated file (if this is empty, response contains streamed image)

                var request = new CreateDeskewedImageRequest(inputImageStream, resizeProportionally, bkColor, outPath, storage);

                Console.WriteLine($"Call DeskewImage with params: resizeProportionally:{resizeProportionally}, bkColor:{bkColor}");

                using (Stream updatedImage = this.ImagingApi.CreateDeskewedImage(request))
                {
                    SaveUpdatedSampleImageToOutput(updatedImage, true, SaveImageFormat);
                }
            }

            Console.WriteLine();
        }
    }
}

この例は、サンプル画像を Cloud Storage にアップロードし、傾きを修正し、更新された画像を Cloud Storage にアップロードします。以下は、入力および出力 TIFF 画像のスクリーンショットです。

入力 TIFF 画像

出力 TIFF 画像(傾き修正済み)

Aspose.Imaging Cloud SDK for Ruby

SDKのラインアップにもう一つ重要な追加があり、私たちは Aspose.Imaging Cloud SDK for Ruby を公開しました。それにより、Rubyアプリケーションに堅牢な画像処理機能を統合することができます。

私たちは、APIのこれらの効率的な機能を試してみて、あなたの経験を私たちと共有することをお勧めします。ご提案やご質問がございましたらお知らせください。 Free Support Forums を通じて、あなたからのご連絡をお待ちしています。

関連する記事:

Introducing Aspose.Imaging Cloud V3