API جستجوی تصویر معکوس

ما خوشحالیم که به شما درباره ویژگی‌های جدید معرفی‌شده در Aspose.Imaging Cloud API اطلاع دهیم. اکنون این API از منابع تصویری مبتنی بر وب برای جستجوی تصویر معکوس پشتیبانی می‌کند. ویژگی تصحیح انحراف تصویر نیز باعث می‌شود این API بی‌نظیر باشد. ما به‌طور مداوم در حال کار و بهبود هستیم تا بهترین راه‌حل‌های ممکن را به شما ارائه دهیم.

جستجوی معکوس تصویر برای پیدا کردن تصاویر تکراری یا مشابه مفید است. همچنین می‌تواند به نظارت بر محتوای غیر اخلاقی یا گرافیکی کمک کند. شما همچنین می‌توانید با جستجوی تصاویر دیجیتالی امضا شده از نقض حقوق کپی رایت یا تقلب در علامت تجاری مقابله کنید. علاوه بر این، تصحیح کج بودن تصویر ویژگی دیگری است که به API Cloud Aspose.Imaging ارزش افزوده می‌دهد. این ویژگی همچنین به اسناد PDF اسکن شده مرتبط است که در آن تصاویر کج اغلب وجود دارند. اسناد PDF چنین معمولاً به اسناد PDF قابل جستجو تبدیل می‌شوند که نتایج می‌توانند با تصحیح کج بودن تصاویر بهبود یابند. بیایید این ویژگی‌ها را در زیر بررسی کنیم.

جستجوی تصویر معکوس با استفاده از Aspose.Imaging Cloud SDK برای پایتون

چندین SDK برای ارتباط با Aspose.Imaging Cloud API در دسترس است. این SDKها به تمام جزئیات کوچک رسیدگی می‌کنند تا شما بتوانید با خیال راحت به نیازهای خود ادامه دهید. SDKها شامل .NET، Java، Python، PHP، Ruby، Android و Node.js هستند. در اینجا ما با یک مثال پایتون کار خواهیم کرد:

نخست از همه، شما به یک sign up رایگان در Aspose.Cloud نیاز خواهید داشت. Python 2.7 or later را نصب کنید و سپس PyPi package زیر را به 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))

        # تصویر را به Cloud بارگذاری کنید
        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 نتایج قابل اعتماد و دقیقی تولید خواهد کرد. در زیر تصویر خروجی ارائه شده است:

همان‌طور که می‌توانید متوجه شوید، تعداد تصاویر مشابه، URL و درصد شباهت توسط پارامترها در پاسخ API نشان داده شده‌اند.

تصویر زدودن کج شدگی با استفاده از Aspose.Imaging Cloud SDK برای .NET

تصاویر شامل اطلاعات زیادی هستند و پردازش تصویر در حال حاضر اهمیت زیادی پیدا کرده است. یک مورد استفاده بسیار رایج، تصاویر کج شده در اسناد PDF اسکن شده یا اغلب در تصاویر دوربین های تلفن همراه است. حالا API Aspose.Imaging Cloud شامل ویژگی تصحیح کجی تصاویر است. شما می‌توانید تصاویر را در فرمت‌های BMP، GIF، JPEG، JPEG2000، PSD، TIFF، WEBP و PNG تصحیح کجی کنید. بیایید یک مثال .NET برای تصحیح کجی یک تصویر TIFF را در نظر بگیریم.

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

namespace AsposeImagingCloudSdkExamples
{
    /// <خلاصه>
    /// نمونه تصویر اصلاح کجی.
    /// </summary>
    /// <seealso cref=\"AsposeImagingCloudSDKExamples.ImagingBase\" />
    class DeskewImage : ImagingBase
    {
        /// <خلاصه>
        /// یک نمونه جدید از کلاس <see cref=\"DeskewImage\"/> را راه اندازی می کند.
        /// </summary>
        /// <param name=\"imagingApi\">API تصویربرداری.</param>
        public DeskewImage(ImagingApi imagingApi) : base(imagingApi)
        {
            PrintHeader("Deskew image example:");
        }

        /// <خلاصه>
        /// نام فایل تصویر مثال را باز می‌کند.
        /// </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>
        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>
        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>
        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();
        }
    }
}

این مثال یک تصویر نمونه را به فضای ذخیره‌سازی ابری آپلود کرده، آن را اصلاح می‌کند و تصویر به‌روز شده را به فضای ذخیره‌سازی ابری آپلود می‌کند. در زیر اسکرین‌شات‌های تصاویر TIFF ورودی و خروجی آورده شده است.

تصویر TIFF ورودی

خروجی تصویر TIFF (تراز شده)

Aspose.Imaging Cloud SDK برای Ruby

یکی دیگر از افزونه‌های مهم در مجموعه SDK ها این است که ما Aspose.Imaging Cloud SDK for Ruby را منتشر کرده‌ایم. این به شما امکان می‌دهد ویژگی‌های قوی پردازش تصویر را در برنامه‌های Ruby خود ادغام کنید.

ما شما را تشویق می‌کنیم که این ویژگی‌های کارآمد API را امتحان کنید و تجربیات خود را با ما به اشتراک بگذارید. ما را از هرگونه پیشنهاد یا پرسش خود مطلع کنید. ما منتظر شنیدن بازخورد شما از طریق Free Support Forums هستیم.

مقاله مرتبط:

معرفی Aspose.Imaging Cloud V3