Η αντίστροφη αναζήτηση εικόνων και η διόρθωση κλίσεων εικόνων σε πραγματικό χρόνο αποτελεί κοινή πρόκληση για τους προγραμματιστές που δημιουργούν λειτουργίες οπτικής αναζήτησης. Aspose.CAD Cloud SDK for .NET παρέχει μια ισχυρή βιβλιοθήκη που απλοποιεί τόσο την αντίστροφη αναζήτηση εικόνων όσο και το image Deskewing σε C#. Σε αυτόν τον οδηγό θα δείτε πώς να deskew ένα PNG, να καλέσετε το Bing Visual Search για αντίστροφη αναζήτηση και να ενσωματώσετε ολόκληρη τη ροή εργασίας με συνοπτικό κώδικα και παραδείγματα cURL.
Πριν ξεκινήσετε: Προαπαιτούμενα και εγκατάσταση
Για να ακολουθήσετε αυτό το σεμινάριο, χρειάζεστε:
- .NET 6.0 ή νεότερο και ένα IDE όπως το Visual Studio 2022.
- Ένας λογαριασμός Aspose Cloud με κλειδί API και μυστικό πελάτη.
- Πρόσβαση στο Bing Visual Search API (απαιτείται κλειδί συνδρομής).
- Το αρχείο εικόνας εισόδου (
input.png) τοποθετημένο στον φάκελο του έργου.
Εγκαταστήστε τη βιβλιοθήκη μέσω του NuGet:
dotnet add package Aspose.cad-Cloud
Κατεβάστε το τελευταίο πακέτο από τη σελίδα λήψης. Μετά την εγκατάσταση, μπορείτε να ξεκινήσετε τον κώδικα της ροής εργασίας.
Κατασκευή βήμα-βήμα: Αντίστροφη αναζήτηση εικόνας και διόρθωση κλίσης εικόνας in .NET
Η υλοποίηση χωρίζεται σε πέντε λογικά βήματα. Κάθε βήμα εμφανίζει μόνο τον σχετικό κώδικα που εξάγεται από το πλήρες παράδειγμα.
Βήμα 1: Φόρτωση της Πηγής Εικόνας
Διαβάστε το αρχείο PNG σε έναν πίνακα byte και δημιουργήστε μια ροή μνήμης που μπορεί να καταναλώσει η βιβλιοθήκη.
string inputImagePath = "input.png";
byte[] inputBytes = File.ReadAllBytes(inputImagePath);
using var inputStream = new MemoryStream(inputBytes);
Βήμα 2: Διαμόρφωση της βιβλιοθήκης Aspose.CAD Cloud
Δημιουργήστε ένα αντικείμενο διαμόρφωσης με το κλειδί 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.
Βήμα 3: Διόρθωση κλίσης της εικόνας χρησιμοποιώντας τη βιβλιοθήκη
Δημιουργήστε ένα DeskewImageRequest με τη ροή εικόνας και καλέστε τη λειτουργία deskew.
var deskewRequest = new DeskewImageRequest
{
ImageData = inputStream
// Optional: Angle, BackgroundColor can be set here
};
byte[] deskewedBytes = await imageApi.PostImageDeskewAsync(deskewRequest);
Βήμα 4: Αποθήκευση της διορθωμένης εικόνας
Γράψτε τον επιστρεφόμενο πίνακα byte σε ένα νέο αρχείο.
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.
Συμπέρασμα
Η υλοποίηση της αντίστροφης αναζήτησης εικόνας και της διόρθωσης κλίσης εικόνας σε C# γίνεται απλή με το Aspose.CAD Cloud SDK for .NET. Η βιβλιοθήκη διαχειρίζεται την προεπεξεργασία εικόνας, ενώ το Bing Visual Search παρέχει ισχυρές δυνατότητες αντίστροφης αναζήτησης. Ακολουθώντας τα παραπάνω βήματα, μπορείτε να δημιουργήσετε μια αξιόπιστη γραμμή εργασίας οπτικής αναζήτησης που διορθώνει τις κλίσεις των εισόδων πριν από την ερώτηση. Θυμηθείτε να αποκτήσετε μια έγκυρη άδεια για παραγωγική χρήση· οι λεπτομέρειες τιμολόγησης είναι διαθέσιμες στη σελίδα του προϊόντος και μπορείτε να λάβετε προσωρινή άδεια από τη σελίδα προσωρινής άδειας. Με τον κώδικα και τα παραδείγματα cURL στα χέρια σας, είστε έτοιμοι να ενσωματώσετε αυτή τη λειτουργικότητα στις εφαρμογές σας.
Συχνές ερωτήσεις
-
Τι επιτυγχάνει η αντίστροφη αναζήτηση εικόνας και η διόρθωση κλίσης εικόνας (Deskewing) σε μια εφαρμογή C#;
Σας επιτρέπει να διορθώνετε αυτόματα τον προσανατολισμό των ανεβασμένων εικόνων και, στη συνέχεια, να βρίσκετε οπτικά παρόμοια αντικείμενα χρησιμοποιώντας μια εξωτερική υπηρεσία αναζήτησης, βελτιώνοντας την εμπειρία του χρήστη και την ακρίβεια της αναζήτησης. -
Μπορώ να χρησιμοποιήσω τη βιβλιοθήκη με άλλες μορφές εικόνας εκτός του PNG;
Ναι, η βιβλιοθήκη υποστηρίζει κοινές μορφές raster όπως JPG και BMP. Απλώς αλλάξτε την επέκταση του αρχείου στον κώδικα. -
Πρέπει να φιλοξενήσω κάποια υπηρεσία για να εκτελέσω αυτόν τον κώδικα;
Όχι, το Aspose.CAD Cloud SDK for .NET είναι μια βιβλιοθήκη βασισμένη στο cloud, έτσι όλη η επεξεργασία γίνεται στους διακομιστές της Aspose. Χρειάζεστε μόνο σύνδεση στο διαδίκτυο και έγκυρα διαπιστευτήρια. -
Πώς μπορώ να διαχειριστώ μεγάλες παρτίδες εικόνων αποδοτικά;
Επεξεργαστείτε τις εικόνες ασύγχρονα, αποθηκεύστε στην κρυφή μνήμη τα αποτελέσματα διόρθωσης κλίσης και επαναχρησιμοποιήστε το ίδιο διακριτικό πρόσβασης για πολλαπλές κλήσεις API. Αυτό μειώνει την καθυστέρηση και το φορτίο του API.