Извършването на обратно търсене на изображения в C# позволява на разработчиците ефективно да намират подобни изображения в колекция въз основа на визуално съдържание, а не на ключови думи или метаданни. Тази възможност е особено полезна в приложения като извличане на изображения, системи за управление на съдържание и управление на цифрови активи. Чрез използване на GroupDocs.Search разработчиците на C# могат да внедрят функция за обратно търсене на изображения за бързо идентифициране на изображения, които съответстват на дадена препратка. В тази статия ще проучим как да извършваме обратно търсене на изображения с помощта на C# и ще предоставим примерен код, за да започнете. Тази функция е особено полезна при работа с различни формати на изображения като PNG, JPEG или ZIP архиви, осигурявайки съвместимост между различни платформи и типове файлове.
Стъпки за извършване на обратно търсене на изображения с помощта на C#
- Добавете библиотеката GroupDocs.Search for .NET към вашия проект за обратно търсене на изображения
- Създайте обект Index, като използвате указаната индексна папка
- Задайте изображение IndexingOptions, за да разрешите индексиране за изображения на контейнерни елементи, вградени изображения и отделни изображения
- Добавете документи към индексната папка с посочените опции за индексиране на изображения
- Задайте ImageSearchOptions, включително разлики в хешовете, максимален брой резултати и филтър за документи за търсене
- Създайте референтно изображение за търсене, като посочите пътя до файла с изображение с помощта на метода SearchImage.Create
- Извършете търсене на изображение в индекса, като използвате референтното изображение и опциите за търсене, като използвате Index.Search
- Прегледайте резултатите от търсенето и отпечатайте подробностите за всяко намерено изображение
За да изпълни тази функционалност, процесът започва с настройка на индекс, който съхранява изображения заедно с техните метаданни. Класът IndexingOptions се използва за активиране на индексиране за различни типове изображения, включително изображения на контейнерни елементи, вградени изображения и отделни изображения. След като изображенията са индексирани, търсенето може да се извърши с помощта на класа SearchImage, който позволява указване на референтно изображение за намиране на подобни съвпадения в рамките на индексираните документи. ImageSearchOptions предоставят допълнителен контрол върху процеса на търсене, като максимален брой резултати и типовете документи, които да се търсят. Този подход прави възможно извършването на ефективно базирано на съдържание извличане на изображения в C# приложения. По-долу е C# кодът за обратно търсене на изображения.
Код за извършване на обратно търсене на изображения с помощта на 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()); | |
} | |
} | |
} | |
} |
Извършването на извличане на базирано на съдържание изображение с помощта на C# е мощна функция за извличане на базирано на съдържание изображение, което позволява на приложенията бързо и точно да намират подобни изображения в различни среди, от настолни приложения до базирани на облак решения. Интегрирането на библиотека за търсене за индексиране и търсене на изображения гарантира, че решението е независимо от платформата, съвместимо с Windows, macOS и Linux и може да се мащабира, за да обработва големи набори от данни от изображения. Използвайки тези възможности, разработчиците могат да създадат стабилни системи за търсене на изображения, които подобряват потребителското изживяване и рационализират задачите за управление на съдържание в различни платформи и приложения.
По-рано предоставихме задълбочено ръководство за извършване на търсене с регулярен израз с помощта на C#. За да видите пълните инструкции стъпка по стъпка, не забравяйте да прочетете нашата подробна статия за това как да изпълните търсене с регулярен израз с C#.