2010-11-18 7 views
1

Bir PHP'ye renk tabanlı bir arama yapmalıyım, burada kullanıcı bir palet üzerinde bir renge tıklayacak ve arama baskın benzer renklerdeki tüm görüntüleri alacaktır.Renk tabanlı görüntü arama motoru PHP'de

En çok benzer renkteki resimlerden gelen istekler azalan sırada sıralanacaktır.

Bunu nasıl başaracağınıza dair bazı yönergeler veya mevcut sınıflar, örnekler vb.

Aramanın "yakınlaştırma" veya "benzer" kısımları nasıl olmalıdır? Farklı türlerde "turuncu" nasıl seçilir ve en fazla kapalı alandan en iyi şekilde nasıl sıralanır.

Teşekkür

Bu ilginizi çekebilecek

cevap

1

İlk olarak, bir kütüphane arama olmamalı anında görüntüler. Her görüntünün baskın rengini bulmak zorunda kalırsanız, bu özellikle çok yavaş olacaktır. Tarayıcı gibi bir şeye ihtiyacınız var, ancak özellikle görseller için.

bunun için bazı katı matematik temeli gerekir, baskın rengi bulmak için: Ben benzer çalışma yaptık

http://en.wikipedia.org/wiki/Normal_distribution

+0

Bu anında arama yaparak olmayacak düzeni

  • Ekran azalan taksitli sonuçları. Buradaki fikir, bir resmin her yüklendiğinde, 8 baskın rengin temel bir paletinin ayıklanması ve bir veritabanında depolanmasıdır. İşte en büyük şüphelerim burada başlıyor. Aramayı optimize etmek için renkleri hangi formatta saklamalıyım? RGB, HEX, HSL? {# 166918} veya {R: 22 G: 105 B: 24?} – Ericko

  • +0

    ile benzer renkleri nasıl bulabilirim Basitleştirmek için GD'nin imagecolorclosest() işlevi size yardımcı olabilir – stillstanding

    +0

    "imagecolorclosest" arasındaki farkı ölçebilirsiniz. dönüş değeri ve giriş renginiz. Tamsayı üçlüleri, arama için en iyi seçenek olabilir, ancak depolama için zorunlu değildir. – stillstanding

    1

    . Uygulamam burada http://code.google.com/p/hppg/ bulunabilir. Canlı örnek proje evinde bulunabilir. Bu arama motoru aynı zamanda anahtar kelimelere ve renklere göre arama özelliğini de içerir. Tüm detaylı bilgi ve kod proje ana sayfasında bulunabilir. Umarım yardım eder :)

    2

    İşte, php GD lib işlevlerini kullanarak görüntüleri nasıl analiz ettiğime dair bir örnek. Buradan, analiz edilen verileri, arama sırasında kullanmak üzere bir DB'ye kaydetmeniz yeterlidir.

    tüm ayrıntıları burada bulabilirsiniz:

    temel adımdan http://www.colab-aktiv.com/?page_id=263 aşağıdaki gibidir:

    • görüntü kullanılarak

    • bir görüntü nesnesi oluşturma renk örnekleri renkleri tanımla o analiz edilmek isteniyorsa, görüntü yeniden boyutlandırılıyorsa görüntü yeniden boyutlandırılır

    • Resim nesnesini oluştur ve Renk örneklerinden renkleri görüntü paletine yükleyin. Bu, bir GIF görüntüsünün kullandığı palettir. Bu, analiz edilen görüntüdeki renklerin karşılaştırılacağı karşılaştırma paletidir.

    • Görüntüdeki tüm piksellerden geçerek karşılaştırma paletindeki piksele en yakın eşleşmeyle hizalayın.

    • Sıralama üst sonuçları