리버스 이미지 검색 API

우리는 Aspose.Imaging Cloud API에 새롭게 도입된 기능에 대해 알려드리게 되어 기쁩니다. 이제 웹사이트 기반 이미지 소스를 지원하여 이미지 역검색 기능을 제공합니다. 이미지 왜곡 보정 기능 덕분에 이 API는 타의 추종을 불허합니다. 우리는 최선을 다해 여러분에게 가능한 최고의 솔루션을 제공하기 위해 지속적으로 작업하고 개선하고 있습니다.

이미지 역검색은 중복되거나 유사한 이미지를 찾는 데 유용합니다. 또한 음란하거나 그래픽 콘텐츠를 모니터링하는 데 도움을 줄 수 있습니다. 역검색을 통해 디지털 서명된 이미지를 검색함으로써 저작권 침해나 상표 위조에 대해 대응할 수 있습니다. 게다가 이미지 기울임 보정은 Aspose.Imaging Cloud API에 가치를 더하는 또 다른 기능입니다. 기울어진 이미지가 자주 존재하는 스캔한 PDF 문서와 관련이 있습니다. 이러한 PDF 문서는 검색 가능한 PDF 문서로 자주 변환되며, 기울임 보정을 통해 결과를 개선할 수 있습니다. 이러한 기능을 아래에서 분석해 보겠습니다.

Aspose.Imaging Cloud SDK for Python을 사용한 이미지 역검색

Aspose.Imaging Cloud API와 통신하기 위해 여러 SDK를 사용할 수 있습니다. SDK는 모든 사소한 세부사항을 처리하므로 귀하의 요구 사항을 번거롭지 않게 진행할 수 있습니다. SDK에는 .NET, Java, Python, PHP, Ruby, Android, 및 Node.js가 포함됩니다. 여기서는 Python 예제를 다룰 것입니다:

우선, Aspose.Cloud에서 무료 sign up이 필요합니다. 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))

        # 클라우드에 이미지 업로드
        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 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>
    /// Deskew image example.
    /// </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>
        /// 이미지를 기울입니다. 이미지 데이터는 요청 스트림으로 전달됩니다.
        /// </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 이미지의 스크린샷입니다.

Input TIFF Image

TIFF 이미지 출력 (기울임 조정됨)

Aspose.Imaging Cloud SDK for Ruby

SDK 라인업에 또 다른 중요한 추가 사항은 Aspose.Imaging Cloud SDK for Ruby를 발행했다는 것입니다. 이는 Ruby 애플리케이션에 강력한 이미지 처리 기능을 통합할 수 있게 해줍니다.

우리는 여러분이 API의 이러한 효율적인 기능을 시도하고 경험을 공유할 것을 권장합니다. 제안 사항이나 질문이 있으시면 알려주세요. 여러분의 Free Support Forums를 통해 회신을 기다리겠습니다.

관련 기사:

Introducing Aspose.Imaging Cloud V3