La búsqueda inversa de imágenes y la corrección de imágenes sesgadas al vuelo es un desafío común para los desarrolladores que crean funciones de búsqueda visual. Aspose.CAD Cloud SDK for .NET proporciona una biblioteca potente que simplifica tanto la búsqueda inversa de imágenes como la corrección de inclinación de imágenes en C#. En esta guía verás cómo corregir la inclinación de un PNG, llamar a Bing Visual Search para la búsqueda inversa e integrar todo el flujo de trabajo con código conciso y ejemplos de cURL.

Antes de comenzar: Requisitos e instalación

Para seguir este tutorial necesitas:

  • .NET 6.0 o posterior y un IDE como Visual Studio 2022.
  • Una cuenta de Aspose Cloud con clave API y secreto de cliente.
  • Acceso a la API Bing Visual Search (se requiere clave de suscripción).
  • El archivo de imagen de entrada (input.png) colocado en la carpeta del proyecto.

Instale la biblioteca mediante NuGet:

dotnet add package Aspose.cad-Cloud

Descargue el paquete más reciente desde la página de descarga. Después de la instalación, puede comenzar a codificar el flujo de trabajo.

Construyéndolo paso a paso: búsqueda inversa de imágenes y corrección de inclinación de imágenes en .NET

La implementación se divide en cinco pasos lógicos. Cada paso muestra solo el código relevante extraído del ejemplo completo.

Paso 1: Cargar la imagen de origen

Lea el archivo PNG en una matriz de bytes y cree un flujo de memoria que la biblioteca pueda consumir.

string inputImagePath = "input.png";
byte[] inputBytes = File.ReadAllBytes(inputImagePath);
using var inputStream = new MemoryStream(inputBytes);

Paso 2: Configurar el Aspose.CAD Cloud Library

Cree un objeto de configuración con su clave API y la URL base, luego instancie el ImageApi.

var config = new Configuration
{
    ApiKey = "YOUR_ASPOSE_CAD_CLOUD_API_KEY",
    BasePath = "https://api.aspose.cloud"
};
var imageApi = new ImageApi(config);

Para obtener más detalles, consulte la referencia de API.

Paso 3: Desinclinar la imagen usando la biblioteca

Cree un DeskewImageRequest con el flujo de imagen y llame a la operación de corrección de inclinación.

var deskewRequest = new DeskewImageRequest
{
    ImageData = inputStream
    // Optional: Angle, BackgroundColor can be set here
};
byte[] deskewedBytes = await imageApi.PostImageDeskewAsync(deskewRequest);

Paso 4: Guardar la imagen enderezada

Escriba la matriz de bytes devuelta en un nuevo archivo.

string deskewedImagePath = "deskewed.png";
File.WriteAllBytes(deskewedImagePath, deskewedBytes);
Console.WriteLine($"Deskewed image saved to {deskewedImagePath}");

Cree un HttpClient, agregue el encabezado de la clave de suscripción y envíe la imagen original 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 estos pasos tienes un flujo de trabajo completo de búsqueda inversa de imágenes y corrección de inclinación de imágenes en C#.

Ejemplo completo y funcional para búsqueda inversa de imágenes y automatización de corrección de inclinación de imágenes

El ejemplo a continuación muestra cómo combinar todas las piezas en una única aplicación de consola.

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: Este ejemplo de código muestra la funcionalidad principal. Antes de usarlo en su proyecto, asegúrese de actualizar cualquier ruta de archivo y valores de configuración para que coincidan con su entorno real, verifique que todas las dependencias requeridas estén instaladas correctamente y pruebe exhaustivamente en su entorno de desarrollo. Si encuentra algún problema, consulte la documentación oficial o póngase en contacto con el equipo de soporte para obtener ayuda.

Realizando las mismas operaciones mediante la API REST usando cURL

Si prefiere un enfoque puro de REST, el mismo flujo de trabajo se puede ejecutar con comandos cURL.

1. Autenticar y obtener un token de acceso

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. Cargar el PNG de origen y solicitar la corrección de inclinación

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. Llamar a Bing Visual Search para búsqueda inversa de imágenes

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"

Estos comandos realizan los mismos pasos que se muestran en el código C#, lo que le permite integrar la funcionalidad en cualquier entorno que pueda ejecutar scripts de shell.

Para obtener parámetros adicionales y formatos de respuesta, consulte la documentación oficial de la API.

Conclusión

Implementar la búsqueda inversa de imágenes y la corrección de inclinación de imágenes en C# se vuelve sencillo con el Aspose.CAD Cloud SDK for .NET. La biblioteca maneja el preprocesamiento de imágenes, mientras que Bing Visual Search ofrece potentes capacidades de búsqueda inversa. Siguiendo los pasos anteriores, puedes crear una canalización de búsqueda visual robusta que corrige entradas sesgadas antes de la consulta. Recuerda obtener una licencia válida para uso en producción; los detalles de precios están disponibles en la página del producto y puedes obtener una licencia temporal desde la página de licencia temporal. Con el código y los ejemplos de cURL a mano, estás listo para integrar esta funcionalidad en tus aplicaciones.

FAQs

  • ¿Qué logran la búsqueda inversa de imágenes y el image Deskewing en una aplicación C#?
    Permite corregir automáticamente la orientación de las imágenes cargadas y luego encontrar elementos visualmente similares mediante un servicio de búsqueda externo, mejorando la experiencia del usuario y la precisión de la búsqueda.

  • ¿Puedo usar la biblioteca con otros formatos de imagen además de PNG?
    Sí, la biblioteca admite formatos raster comunes como JPG y BMP. Simplemente cambie la extensión del archivo en el código.

  • ¿Necesito alojar algún servicio para ejecutar este código?
    No, el Aspose.CAD Cloud SDK for .NET es una biblioteca basada en la nube, por lo que todo el procesamiento se realiza en los servidores de Aspose. Solo necesita conectividad a Internet y credenciales válidas.

  • ¿Cómo puedo manejar grandes lotes de imágenes de manera eficiente?
    Procesa las imágenes de forma asíncrona, almacena en caché los resultados de corrección de inclinación y reutiliza el mismo token de acceso para múltiples llamadas a la API. Esto reduce la latencia y la sobrecarga de la API.

Leer más