La realización de una búsqueda inversa de imágenes en C# permite a los desarrolladores encontrar de manera eficiente imágenes similares dentro de una colección basándose en el contenido visual en lugar de palabras clave o metadatos. Esta capacidad es especialmente útil en aplicaciones como la recuperación de imágenes, los sistemas de gestión de contenido y la gestión de activos digitales. Al utilizar GroupDocs.Search, los desarrolladores de C# pueden implementar la función de búsqueda inversa de imágenes para identificar rápidamente las imágenes que coinciden con una referencia determinada. En este artículo, exploraremos cómo realizar una búsqueda inversa de imágenes con C# y proporcionaremos un ejemplo de código para comenzar. Esta función es particularmente útil cuando se trabaja con diversos formatos de imagen, como archivos PNG, JPEG o ZIP, lo que garantiza la compatibilidad entre diferentes plataformas y tipos de archivos.
Pasos para realizar una búsqueda inversa de imágenes con C#
- Agregue la biblioteca GroupDocs.Search for .NET a su proyecto para la búsqueda inversa de imágenes
- Cree un objeto Index utilizando la carpeta de índice especificada
- Establezca la imagen IndexingOptions para habilitar la indexación de imágenes de elementos de contenedor, imágenes integradas e imágenes separadas
- Agregar documentos a la carpeta de índice con las opciones de indexación de imágenes especificadas
- Establezca ImageSearchOptions que incluya diferencias de hash, recuento máximo de resultados y un filtro de búsqueda de documentos
- Cree una imagen de referencia para la búsqueda especificando la ruta al archivo de imagen mediante el método SearchImage.Create
- Realice la búsqueda de imágenes en el índice utilizando la imagen de referencia y las opciones de búsqueda utilizando Index.Search
- Recorra los resultados de la búsqueda e imprima los detalles de cada imagen encontrada
Para realizar esta función, el proceso comienza con la configuración de un índice que almacena imágenes junto con sus metadatos. La clase IndexingOptions se utiliza para habilitar la indexación de diferentes tipos de imágenes, incluidas imágenes de elementos contenedores, imágenes incrustadas e imágenes independientes. Una vez que las imágenes están indexadas, la búsqueda se puede realizar utilizando la clase SearchImage, que permite especificar una imagen de referencia para encontrar coincidencias similares dentro de los documentos indexados. ImageSearchOptions proporciona un control adicional sobre el proceso de búsqueda, como el número máximo de resultados y los tipos de documentos que se buscarán. Este enfoque permite realizar una recuperación de imágenes basada en contenido eficiente en aplicaciones C#. A continuación se muestra el código C# para la búsqueda inversa de imágenes.
Código para realizar una búsqueda inversa de imágenes con C#
using GroupDocs.Search; | |
using GroupDocs.Search.Common; | |
using GroupDocs.Search.Options; | |
using GroupDocs.Search.Results; | |
using System; | |
namespace PerformReverseImageSearchUsingCSharp | |
{ | |
internal class Program | |
{ | |
static void Main(string[] args) | |
{ | |
// Apply the license to remove the restrictions | |
// imposed by the Search library | |
License lic = new License(); | |
lic.SetLicense(@"GroupDocs.Search.lic"); | |
string indexFolder = @"d:\MyIndex\"; | |
string documentsFolder = @"d:\MyDocuments\"; | |
// Creating an index in the specified folder | |
Index index = new Index(indexFolder); | |
// Setting the image indexing options | |
IndexingOptions indexingOptions = new IndexingOptions(); | |
indexingOptions.ImageIndexingOptions.EnabledForContainerItemImages = true; | |
indexingOptions.ImageIndexingOptions.EnabledForEmbeddedImages = true; | |
indexingOptions.ImageIndexingOptions.EnabledForSeparateImages = true; | |
// Indexing documents in a document folder | |
index.Add(documentsFolder, indexingOptions); | |
// Setting the image search options | |
ImageSearchOptions imageSearchOptions = new ImageSearchOptions(); | |
imageSearchOptions.HashDifferences = 10; | |
imageSearchOptions.MaxResultCount = 100; | |
imageSearchOptions.SearchDocumentFilter = SearchDocumentFilter | |
.CreateFileExtension(".zip", ".png", ".jpg"); | |
// Creating a reference image for search | |
SearchImage searchImage = SearchImage.Create(@"d:\MyDocuments\image.png"); | |
// Searching in the index | |
ImageSearchResult result = index.Search(searchImage, imageSearchOptions); | |
Console.WriteLine("Images found: " + result.ImageCount); | |
for (int i = 0; i < result.ImageCount; i++) | |
{ | |
FoundImageFrame image = result.GetFoundImage(i); | |
Console.WriteLine(image.DocumentInfo.ToString()); | |
} | |
} | |
} | |
} |
La recuperación de imágenes basada en contenido mediante C# es una característica potente que permite a las aplicaciones encontrar imágenes similares de forma rápida y precisa en distintos entornos, desde aplicaciones de escritorio hasta soluciones basadas en la nube. La integración de la biblioteca de búsqueda para la indexación y búsqueda de imágenes garantiza que la solución sea independiente de la plataforma, compatible con Windows, macOS y Linux, y que pueda escalar para gestionar grandes conjuntos de datos de imágenes. Al aprovechar estas capacidades, los desarrolladores pueden crear sistemas de búsqueda de imágenes robustos que mejoran la experiencia del usuario y agilizan las tareas de gestión de contenido en diferentes plataformas y aplicaciones.
Anteriormente, proporcionamos una guía detallada sobre cómo realizar búsquedas de expresiones regulares con C#. Para ver las instrucciones paso a paso completas, asegúrese de leer nuestro artículo detallado sobre cómo realizar Búsqueda de expresiones regulares con C#.