C#‘de ters resim araması yapmak, geliştiricilerin anahtar kelimeler veya meta veriler yerine görsel içerik temelinde bir koleksiyondaki benzer resimleri verimli bir şekilde bulmasını sağlar. Bu yetenek, özellikle resim alma, içerik yönetim sistemleri ve dijital varlık yönetimi gibi uygulamalarda faydalıdır. GroupDocs.Search’ü kullanarak, C# geliştiricileri verilen bir referansla eşleşen resimleri hızla belirlemek için ters resim araması işlevselliğini uygulayabilir. Bu makalede, C# kullanarak ters resim araması nasıl yapılır inceleyeceğiz ve başlamanız için bir kod örneği sunacağız. Bu özellik, PNG, JPEG veya ZIP arşivleri gibi çeşitli resim formatlarıyla uğraşırken özellikle faydalıdır ve farklı platformlar ve dosya türleri arasında uyumluluğu garanti eder.
C# kullanarak Tersine Resim Araması Gerçekleştirme Adımları
- Ters görüntü araması için projenize GroupDocs.Search for .NET kitaplığını ekleyin
- Belirtilen dizin klasörünü kullanarak bir Index nesnesi oluşturun
- IndexingOptions resmini, kapsayıcı öğe resimleri, gömülü resimler ve ayrı resimler için dizinlemeyi etkinleştirecek şekilde ayarlayın
- Belirtilen görüntü dizinleme seçenekleriyle belgeleri dizin klasörüne ekleyin
- Karma farkları, maksimum sonuç sayısı ve bir arama belgesi filtresi içeren ImageSearchOptions‘i ayarlayın
- SearchImage.Create metodunu kullanarak resim dosyasının yolunu belirterek arama için bir referans resim oluşturun
- Referans görseli kullanarak dizinde resim araması yapın ve Index.Search arama seçeneklerini kullanın
- Arama sonuçları arasında dolaşın ve bulunan her görüntünün ayrıntılarını yazdırın
Bu işlevi gerçekleştirmek için süreç, meta verileriyle birlikte görüntüleri depolayan bir dizin kurmakla başlar. IndexingOptions sınıfı, kapsayıcı öğe görüntüleri, gömülü görüntüler ve ayrı görüntüler dahil olmak üzere farklı görüntü türleri için dizinlemeyi etkinleştirmek için kullanılır. Görüntüler dizine eklendiğinde, dizinlenmiş belgeler içinde benzer eşleşmeleri bulmak için bir referans görüntü belirtmeye izin veren SearchImage sınıfı kullanılarak arama gerçekleştirilebilir. ImageSearchOptions, arama süreci üzerinde maksimum sonuç sayısı ve aranacak belge türleri gibi ek kontrol sağlar. Bu yaklaşım, C# uygulamalarında etkili içerik tabanlı görüntü alma işlemini gerçekleştirmeyi mümkün kılar. Aşağıda ters görüntü araması için C# kodu bulunmaktadır.
C# kullanarak Tersine Resim Araması Gerçekleştirmek İçin Kod
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# kullanarak içerik tabanlı görüntü alma işlemini gerçekleştirmek, içerik tabanlı görüntü alma için güçlü bir özelliktir ve uygulamaların masaüstü uygulamalarından bulut tabanlı çözümlere kadar çeşitli ortamlarda benzer görüntüleri hızlı ve doğru bir şekilde bulmasını sağlar. Görüntü dizinleme ve arama için Arama kütüphanesinin entegrasyonu, çözümün platformdan bağımsız olmasını, Windows, macOS ve Linux ile uyumlu olmasını ve büyük görüntü veri kümelerini işleyecek şekilde ölçeklenebilmesini sağlar. Geliştiriciler, bu yeteneklerden yararlanarak kullanıcı deneyimini geliştiren ve farklı platformlar ve uygulamalar arasında içerik yönetimi görevlerini kolaylaştıran sağlam görüntü arama sistemleri oluşturabilir.
Daha önce, C# kullanarak düzenli ifade araması gerçekleştirmeye ilişkin ayrıntılı bir kılavuz sağladık. Adım adım talimatların tamamını görüntülemek için C# kullanarak düzenli ifade araması‘in nasıl gerçekleştirileceğine ilişkin ayrıntılı makalemizi okuduğunuzdan emin olun.