programlı görüntüleri karşılaştırarak - lib veya sınıf [kapalı]

3 Cevap php

Benim amacım 2 görüntü dosyaları kaynağı, ve bu 2 dosya (kesin kabul edilebilir bir derece içinde) aynı olabilir olmadığı konusunda bir doğru / yanlış cevap almak için.

Bu soru yapay zeka altına düşer ve çok daha karmaşık göründüğünden daha farkında, bu yüzden son derece elimden şüphe (hatta isteyeyim) bunu kendim yapacağım. Ne arıyorum, muhtemelen bir kütüphane ya da bir sınıftır. PHP ile çalışıyorum.

şimdiden teşekkürler ..

Tüm yararlı cevaplar / yorumlar kadar oy alır ..

Update:

I wonder if I'm over-complicating it, and maybe a more general library like imageMagick (imagick) could get it done? Anyone who's more experienced with imageMagick?

3 Cevap

Eğer sadece kendi görüntüleri karşılaştırarak eğer http://tineye.com/ yararlı olabilir.

Gelişmiş şey PHP gibi bir betik dili uygun gitmiyor olsa muhtemelen, görüntü benzerlik algoritmaları üzerinde biraz araştırma yapmak gerekir. En basit karşılaştırma yöntemi şu şekilde çalışacak:

  1. Zaten değilse ikisi görüntüleri aynı boyutta yapın.
  2. Her gelen pikseli karşılaştırın ve ne kadar benzer karar verir. Basit yöntem olup, kırmızı değerleri, daha sonra mavi değerleri, daha sonra yeşil değerleri arasındaki farkı alır, ve bunların ortalama etmektir.
  3. Tüm piksel ortalama fark atın. Bu karar bazı eşiğin altına varsa, o görüntüler aynı veya benzer. Sen bir eşik karar için çeşitli görüntüleri ile test etmek gerekiyordu.

Ben tüm bu yapabilirsiniz eğer çok emin değilim Imagemagick ve PHP'nin görüntü fonksiyonlarının tamamen aşina değilim.

Bunu deneyin vermedi, ama belki Libpuzzle hile yapabilir (quoting):

The Puzzle library is designed to quickly find visually similar images (GIF, PNG, JPG), even if they have been resized, recompressed, recolored or slightly modified.

This is a C library, but is also comes with a command-line tool and PHP bindings.

Ve bir örnek PHP var there.

(It seems to be a PHP extension -- which means you'll need to be admin of your server to be able to install it)