API بحث الصور العكسية

نحن متحمسون لإعلامك بالميزات الجديدة التي تم تقديمها في Aspose.Imaging Cloud API. الآن يدعم مصدر الصور المستند إلى الويب للبحث العكسي عن الصور. ميزة تصحيح زوايا الصورة تجعل API الأفضل بلا منازع. نحن نعمل على تحسين وتطوير الخدمة باستمرار لتقديم أفضل الحلول الممكنة لك.

البحث العكسي عن الصور مفيد للعثور على الصور المكررة أو المشابهة. يمكن أن يساعد أيضًا في مراقبة المحتوى الفاضح أو الجرافيكي. يمكنك أيضًا مواجهة انتهاكات حقوق الطبع والنشر أو تزييف العلامات التجارية عن طريق البحث عن الصور الموقعة رقمياً باستخدام البحث العكسي. علاوة على ذلك، فإن تصحيح انحراف الصور هو ميزة أخرى تضيف قيمة إلى Aspose.Imaging Cloud API. إنه أيضًا ذو صلة بالمستندات PDF الممسوحة ضوئيًا حيث توجد الصور المنحرفة في كثير من الأحيان. مثل هذه المستندات PDF يتم تحويلها بشكل متكرر إلى مستندات PDF قابلة للبحث حيث يمكن تحسين النتائج من خلال تصحيح انحراف الصور. دعونا نقوم بتحليل هذه الميزات أدناه.

البحث العكسي عن الصور باستخدام Aspose.Imaging Cloud SDK لـ Python

تتوفر عدة حزم SDK للتواصل مع Aspose.Imaging Cloud API. تتولى حزم SDK جميع التفاصيل الثانوية حتى تتمكن من المضي قدمًا في متطلباتك بدون متاعب. تشمل حزم SDK .NET و Java و Python و PHP و Ruby و Android و Node.js. هنا سنعمل مع مثال بايثون:

أولاً وقبل كل شيء، ستحتاج إلى sign up مجاني في Aspose.Cloud. قم بتثبيت Python 2.7 أو أحدث ثم أضف PyPi package التالي إلى ملف requirements.txt الخاص بك.

aspose-imaging-cloud>=20.1

الآن قم باستيراد التبعيّات كما هو موضح أدناه:

import aspose-imaging-cloud

الآن، يمكنك استخدام كود بايثون أدناه لاستدعاء واجهات البرامج واختبار الميزة:

    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))

يتم توضيح مصدر الصورة المستند إلى الموقع لبحث الصورة العكسية بشكل جيد في هذا المثال. يتضمن خطوة إضافية لتغيير حجم الصورة لإظهار كفاءة واجهة برمجة التطبيقات. قد تختلف أبعاد الصورة ولكن ستقدم واجهة برمجة التطبيقات نتائج موثوقة ودقيقة. فيما يلي لقطة شاشة للإخراج:

كما يمكنك أن تلاحظ أن عدد الصور المماثلة، ورابط URL ونسبة التشابه تظهرها المعلمات في استجابة API.

تصحيح انحراف الصورة باستخدام Aspose.Imaging Cloud SDK لـ .NET

تحتوي الصور على الكثير من المعلومات وقد أصبحت معالجة الصور ذات أهمية كبيرة في هذه الأيام. إحدى حالات الاستخدام الشائعة هي الصور المائلة في مستندات PDF الممسوحة ضوئيًا أو غالبًا في الصور من كاميرات الهواتف المحمولة. تتضمن واجهة برمجة التطبيقات 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
    {
        /// <ملخص>
        /// Initializes a new instance of the <see cref=\"DeskewImage\"/> class.
        /// </summary>
        /// <param name=\"imagingApi\">واجهة برمجة تطبيقات التصوير.</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 for Ruby

إضافة مهمة أخرى في مجموعة SDKs هي أننا نشرنا Aspose.Imaging Cloud SDK for Ruby. يتيح لك دمج ميزات معالجة الصور القوية في تطبيقات Ruby الخاصة بك.

نحن نشجعك على تجربة هذه الميزات الفعالة لـ API ومشاركة تجاربك معنا. دعنا نعرف إذا كان لديك أي اقتراحات أو استفسارات. نتطلع إلى سماع ردك من خلال Free Support Forums.

المقال المتعلق:

Introducing Aspose.Imaging Cloud V3