Eseguire la ricerca inversa delle immagini utilizzando C#

L’esecuzione di ricerca inversa di immagini in C# consente agli sviluppatori di trovare in modo efficiente immagini simili all’interno di una raccolta in base al contenuto visivo anziché a parole chiave o metadati. Questa capacità è particolarmente utile in applicazioni come il recupero di immagini, i sistemi di gestione dei contenuti e la gestione delle risorse digitali. Utilizzando GroupDocs.Search, gli sviluppatori C# possono implementare la funzionalità di ricerca inversa di immagini per identificare rapidamente le immagini che corrispondono a un dato riferimento. In questo articolo, esploreremo come eseguire una ricerca inversa di immagini utilizzando C# e forniremo un esempio di codice per iniziare. Questa funzionalità è particolarmente utile quando si ha a che fare con diversi formati di immagini come PNG, JPEG o archivi ZIP, garantendo la compatibilità tra diverse piattaforme e tipi di file.

Passaggi per eseguire la ricerca inversa delle immagini utilizzando C#

  1. Aggiungi la libreria GroupDocs.Search for .NET al tuo progetto per la ricerca inversa delle immagini
  2. Crea un oggetto Index utilizzando la cartella indice specificata
  3. Imposta l’immagine IndexingOptions per abilitare l’indicizzazione per le immagini degli elementi contenitore, le immagini incorporate e le immagini separate
  4. Aggiungere documenti alla cartella indice con le opzioni di indicizzazione delle immagini specificate
  5. Imposta ImageSearchOptions includendo differenze hash, conteggio massimo dei risultati e un filtro per la ricerca dei documenti
  6. Crea un’immagine di riferimento per la ricerca specificando il percorso del file immagine utilizzando il metodo SearchImage.Create
  7. Eseguire la ricerca dell’immagine nell’indice utilizzando l’immagine di riferimento e le opzioni di ricerca utilizzando Index.Search
  8. Scorri i risultati della ricerca e stampa i dettagli di ogni immagine trovata

Per eseguire questa funzionalità, il processo inizia con l’impostazione di un indice che memorizza le immagini insieme ai loro metadati. La classe IndexingOptions viene utilizzata per abilitare l’indicizzazione per diversi tipi di immagini, tra cui immagini di elementi contenitore, immagini incorporate e immagini separate. Una volta indicizzate le immagini, la ricerca può essere eseguita utilizzando la classe SearchImage, che consente di specificare un’immagine di riferimento per trovare corrispondenze simili all’interno dei documenti indicizzati. ImageSearchOptions fornisce un controllo aggiuntivo sul processo di ricerca, come il numero massimo di risultati e i tipi di documenti da ricercare. Questo approccio consente di eseguire un recupero efficiente delle immagini basato sul contenuto nelle applicazioni C#. Di seguito è riportato il codice C# per la ricerca inversa delle immagini.

Codice per eseguire la ricerca inversa delle immagini utilizzando 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());
}
}
}
}

L’esecuzione del recupero di immagini basato sul contenuto tramite C# è una potente funzionalità per il recupero di immagini basato sul contenuto, che consente alle applicazioni di trovare rapidamente e accuratamente immagini simili in vari ambienti, dalle applicazioni desktop alle soluzioni basate su cloud. L’integrazione della libreria di ricerca per l’indicizzazione e la ricerca di immagini garantisce che la soluzione sia indipendente dalla piattaforma, compatibile con Windows, macOS e Linux e possa essere scalata per gestire grandi set di dati di immagini. Sfruttando queste funzionalità, gli sviluppatori possono creare sistemi di ricerca di immagini robusti che migliorano l’esperienza utente e semplificano le attività di gestione dei contenuti su diverse piattaforme e applicazioni.

In precedenza, abbiamo fornito una guida approfondita su come eseguire la ricerca di espressioni regolari tramite C#. Per visualizzare le istruzioni complete passo dopo passo, assicurati di leggere il nostro articolo dettagliato su come eseguire ricerca di espressioni regolari utilizzando C#.

 Italiano