การค้นหารูปภาพย้อนกลับและการแก้ไขภาพที่เอียงโดยอัตโนมัติเป็นความท้าทายทั่วไปสำหรับนักพัฒนาที่สร้างฟีเจอร์การค้นหาภาพแบบภาพเห็น. Aspose.CAD Cloud SDK for .NET มีไลบรารีที่ทรงพลังซึ่งทำให้การค้นหารูปภาพย้อนกลับและการแก้ไขเอียงของภาพใน C# ง่ายขึ้น. ในคู่มือนี้คุณจะได้เห็นวิธีการแก้ไขเอียงของไฟล์ PNG, เรียกใช้ Bing Visual Search เพื่อการค้นหาย้อนกลับ, และรวมกระบวนการทั้งหมดด้วยโค้ดที่กระชับและตัวอย่าง cURL.

ก่อนเริ่มต้น: ข้อกำหนดเบื้องต้นและการติดตั้ง

เพื่อทำตามบทเรียนนี้คุณต้องมี:

  • .NET 6.0 หรือใหม่กว่าและ IDE เช่น Visual Studio 2022.
  • บัญชี Aspose Cloud พร้อมคีย์ API และ client secret.
  • การเข้าถึง Bing Visual Search API (ต้องมีคีย์สมัครสมาชิก).
  • ไฟล์รูปภาพอินพุต (input.png) ที่วางไว้ในโฟลเดอร์โครงการ.

ติดตั้งไลบรารีผ่าน NuGet:

dotnet add package Aspose.cad-Cloud

ดาวน์โหลดแพ็กเกจล่าสุดจาก หน้าดาวน์โหลด. หลังจากการติดตั้ง คุณสามารถเริ่มเขียนโค้ดเวิร์กโฟลว์ได้.

สร้างขั้นตอนต่อขั้น: การค้นหารูปภาพย้อนกลับและการแก้ไขการเอียงของรูปภาพใน .NET

การดำเนินการถูกแบ่งออกเป็นห้าขั้นตอนเชิงตรรกะ แต่ละขั้นตอนจะแสดงเฉพาะโค้ดที่เกี่ยวข้องที่ดึงมาจากตัวอย่างเต็ม.

ขั้นตอนที่ 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 reference.

ขั้นตอนที่ 3: ปรับแนวภาพให้ตรงโดยใช้ไลบรารี

สร้าง DeskewImageRequest ด้วยสตรีมภาพและเรียกใช้การดำเนินการ deskew.

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; }
    }
}

หมายเหตุ: ตัวอย่างโค้ดนี้แสดงการทำงานหลัก ก่อนนำไปใช้ในโครงการของคุณ ให้ตรวจสอบและอัปเดตเส้นทางไฟล์และค่าการกำหนดค่าต่าง ๆ ให้ตรงกับสภาพแวดล้อมจริงของคุณ ตรวจสอบว่าขึ้นตอนการพึ่งพาที่จำเป็นทั้งหมดได้ติดตั้งอย่างถูกต้องแล้ว และทำการทดสอบอย่างละเอียดในสภาพแวดล้อมการพัฒนา หากคุณพบปัญหาใด ๆ โปรดดูที่ เอกสารอย่างเป็นทางการ หรือ ติดต่อ ทีมสนับสนุน เพื่อขอความช่วยเหลือ

ทำการดำเนินการเดียวกันผ่าน REST API ด้วย cURL

หากคุณต้องการใช้วิธี 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 อย่างเป็นทางการ.

สรุป

การทำ reverse image search และการ Deskew รูปภาพใน C# กลายเป็นเรื่องง่ายด้วย Aspose.CAD Cloud SDK for .NET. ไลบรารีจัดการการเตรียมรูปภาพล่วงหน้า, ในขณะที่ Bing Visual Search ให้ความสามารถในการค้นหาแบบย้อนกลับที่ทรงพลัง. โดยทำตามขั้นตอนข้างต้นคุณสามารถสร้าง pipeline การค้นหาแบบภาพที่แข็งแรงซึ่งแก้ไขอินพุตที่เอียงก่อนทำการค้นหา. จำไว้ว่าให้รับใบอนุญาตที่ถูกต้องสำหรับการใช้งานในผลิตภัณฑ์; รายละเอียดราคาอยู่ในหน้าผลิตภัณฑ์และคุณสามารถรับใบอนุญาตชั่วคราวจาก หน้าลิขสิทธิ์ชั่วคราว. ด้วยโค้ดและตัวอย่าง cURL ที่มีอยู่ คุณพร้อมที่จะผสานฟังก์ชันนี้เข้ากับแอปพลิเคชันของคุณแล้ว.

คำถามที่พบบ่อย

  • การค้นหารูปภาพย้อนกลับและการปรับแนวภาพ (Deskewing) ทำอะไรได้บ้างในแอปพลิเคชัน C#?
    ช่วยให้คุณสามารถแก้ไขทิศทางของรูปภาพที่อัปโหลดโดยอัตโนมัติและจากนั้นค้นหารายการที่มีลักษณะคล้ายกันโดยใช้บริการค้นหาภายนอก ซึ่งช่วยปรับปรุงประสบการณ์ผู้ใช้และความแม่นยำของการค้นหา

  • ฉันสามารถใช้ไลบรารีกับรูปแบบภาพอื่นนอกจาก PNG ได้หรือไม่?
    ใช่, ไลบรารีรองรับรูปแบบเรสเตอร์ทั่วไปเช่น JPG และ BMP. เพียงเปลี่ยนนามสกุลไฟล์ในโค้ด.

  • ฉันต้องโฮสต์บริการใด ๆ เพื่อรันโค้ดนี้หรือไม่?
    ไม่, Aspose.CAD Cloud SDK for .NET เป็นไลบรารีแบบคลาวด์ ดังนั้นการประมวลผลทั้งหมดจะเกิดขึ้นบนเซิร์ฟเวอร์ของ Aspose คุณเพียงแค่ต้องมีการเชื่อมต่ออินเทอร์เน็ตและข้อมูลประจำตัวที่ถูกต้อง

  • ฉันจะจัดการกับชุดภาพขนาดใหญ่อย่างมีประสิทธิภาพได้อย่างไร?
    ประมวลผลภาพแบบอะซิงโครนัส, แคชผลลัพธ์ที่ทำการแก้ไขการเอียง, และใช้โทเค็นการเข้าถึงเดียวกันสำหรับหลายการเรียก API. สิ่งนี้ช่วยลดความหน่วงและภาระของ API.

อ่านเพิ่มเติม