La ricerca inversa di immagini e la correzione di immagini inclinate al volo è una sfida comune per gli sviluppatori che creano funzionalità di ricerca visiva. Aspose.CAD Cloud SDK for .NET fornisce una libreria potente che semplifica sia la ricerca inversa di immagini sia la correzione dell’inclinazione delle immagini in C#. In questa guida vedrai come correggere l’inclinazione di un file PNG, chiamare Bing Visual Search per la ricerca inversa e integrare l’intero flusso di lavoro con codice conciso ed esempi cURL.
Prima di Iniziare: Prerequisiti e Installazione
Per seguire questo tutorial è necessario:
- .NET 6.0 o versioni successive e un IDE come Visual Studio 2022.
- Un account Aspose Cloud con chiave API e client secret.
- Accesso all’API Bing Visual Search (è necessaria la chiave di sottoscrizione).
- Il file immagine di input (
input.png) posizionato nella cartella del progetto.
Installa la libreria tramite NuGet:
dotnet add package Aspose.cad-Cloud
Scarica l’ultimo pacchetto dalla pagina di download. Dopo l’installazione, puoi iniziare a scrivere il flusso di lavoro.
Costruirlo passo dopo passo: ricerca inversa di immagini e correzione dell’inclinazione dell’immagine in .NET
L’implementazione è suddivisa in cinque passaggi logici. Ogni passaggio mostra solo il codice pertinente estratto dall’esempio completo.
Passo 1: Carica l’immagine di origine
Leggi il file PNG in un array di byte e crea uno stream di memoria che la libreria può consumare.
string inputImagePath = "input.png";
byte[] inputBytes = File.ReadAllBytes(inputImagePath);
using var inputStream = new MemoryStream(inputBytes);
Passo 2: Configura l’Aspose.CAD Cloud Library
Crea un oggetto di configurazione con la tua chiave API e l’URL di base, quindi istanzia ImageApi.
var config = new Configuration
{
ApiKey = "YOUR_ASPOSE_CAD_CLOUD_API_KEY",
BasePath = "https://api.aspose.cloud"
};
var imageApi = new ImageApi(config);
Per ulteriori dettagli, consulta il riferimento API.
Passo 3: Raddrizzare l’immagine usando la libreria
Costruisci una DeskewImageRequest con lo stream dell’immagine e chiama l’operazione di correzione dell’inclinazione.
var deskewRequest = new DeskewImageRequest
{
ImageData = inputStream
// Optional: Angle, BackgroundColor can be set here
};
byte[] deskewedBytes = await imageApi.PostImageDeskewAsync(deskewRequest);
Passo 4: Salva l’immagine raddrizzata
Scrivi l’array di byte restituito in un nuovo file.
string deskewedImagePath = "deskewed.png";
File.WriteAllBytes(deskewedImagePath, deskewedBytes);
Console.WriteLine($"Deskewed image saved to {deskewedImagePath}");
Passo 5: Esegui una ricerca inversa di immagini tramite Bing Visual Search API
Crea un HttpClient, aggiungi l’intestazione della chiave di sottoscrizione e invia l’immagine originale a 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);
Con questi passaggi hai un flusso di lavoro completo di ricerca inversa di immagini e correzione dell’inclinazione delle immagini in C#.
Esempio completo funzionante per la ricerca inversa di immagini e l’automazione della correzione dell’inclinazione delle immagini
L’esempio seguente dimostra come combinare tutti i componenti in una singola applicazione console.
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; }
}
}
Nota: Questo esempio di codice dimostra la funzionalità principale. Prima di usarlo nel tuo progetto, assicurati di aggiornare tutti i percorsi dei file e i valori di configurazione per corrispondere al tuo ambiente reale, verifica che tutte le dipendenze richieste siano installate correttamente e testa accuratamente nel tuo ambiente di sviluppo. Se riscontri problemi, consulta la documentazione ufficiale o contatta il team di supporto per assistenza.
Eseguire le Stesse Operazioni tramite REST API usando cURL
Se preferisci un approccio REST puro, lo stesso flusso di lavoro può essere eseguito con comandi cURL.
1. Autenticare e ottenere un token di accesso
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. Carica il PNG di origine e richiedi la correzione dell’inclinazione
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. Chiama Bing Visual Search per la ricerca inversa di immagini
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"
Questi comandi eseguono i passaggi identici mostrati nel codice C#, consentendoti di integrare la funzionalità in qualsiasi ambiente in grado di eseguire script shell.
Per parametri aggiuntivi e formati di risposta, consultare la documentazione ufficiale dell’API.
Conclusione
Implementare la ricerca inversa di immagini e la correzione dell’inclinazione delle immagini in C# diventa semplice con l’Aspose.CAD Cloud SDK for .NET. La libreria gestisce la preelaborazione delle immagini, mentre Bing Visual Search fornisce potenti capacità di ricerca inversa. Seguendo i passaggi sopra, è possibile creare una pipeline di ricerca visiva robusta che corregge gli input inclinati prima della query. Ricorda di acquisire una licenza valida per l’uso in produzione; i dettagli dei prezzi sono disponibili nella pagina del prodotto e puoi ottenere una licenza temporanea dalla pagina di licenza temporanea. Con il codice e gli esempi cURL a disposizione, sei pronto a integrare questa funzionalità nelle tue applicazioni.
FAQs
-
Cosa ottiene la ricerca inversa di immagini e la correzione dell’inclinazione dell’immagine in un’applicazione C#?
Consente di correggere automaticamente l’orientamento delle immagini caricate e quindi di trovare elementi visivamente simili utilizzando un servizio di ricerca esterno, migliorando l’esperienza dell’utente e la precisione della ricerca. -
Posso usare la libreria con altri formati immagine oltre PNG?
Sì, la libreria supporta formati raster comuni come JPG e BMP. Basta cambiare l’estensione del file nel codice. -
Devo ospitare dei servizi per eseguire questo codice?
No, il Aspose.CAD Cloud SDK for .NET è una libreria basata su cloud, quindi tutta l’elaborazione avviene sui server di Aspose. Hai solo bisogno di connettività Internet e credenziali valide. -
Come posso gestire grandi batch di immagini in modo efficiente?
Elabora le immagini in modo asincrono, memorizza nella cache i risultati deskewed e riutilizza lo stesso token di accesso per più chiamate API. Questo riduce la latenza e l’overhead dell’API.