Hogyan lehet azonosítani ismétlődő képeket php, savepearlharbor

Mindenesetre projekt az emberi tényező nem törölték, és ha a felhasználó a saját hajó képek website - másolatokkal nem lehet elkerülni. Mikor jön a több ezer kép, minden szem nem vizsgálta, és az ismétlődő képek nem elég, hogy senki nem akarja, így is sor kerül, az erőforrások és végül akadályozzák a munkát.

Hogyan lehet azonosítani ismétlődő képeket php, savepearlharbor

Mert előbb-utóbb az a kérdés, a folyamat automatizálását találni ismétlések, majd megnézzük az alap, valamint megpróbálja az ügyet.

Összehasonlítás fájlok hash függvény

Ennek egyik módja, hogy összehasonlítsa a duplikált definíciós fájl létrehozásával egy hash értéket a tartalom a megadott fájlt.

Egy egyszerű példa számítási hash képek:

Az eredmény valahogy így néz ki: bff8b4bc8b5c1c1d5b3211dfb21d1e76

Ha az összeg egyezik a két kép - a kép ugyanaz.
A módszer nem a legpontosabb, mivel csak akkor működik, azonos képeket, a legkisebb különbséget - érzékelni nulla.

Hogyan lehet azonosítani ismétlődő képeket php, savepearlharbor

ImageMagicknek

képfeldolgozó funkció Imagick :: compareImages olyan tömböt ad vissza, amely tartalmazza a rekonstruált kép, és a különbség a képek között.

Példa használja összehasonlításakor két kép:

Ennek eredményeként a két összehasonlított képek öntve, amelyben különbségek láthatók.
Ön is kap egy numerikus kifejezés különbségek az egyes paraméterek (például of.sayta):

GD2 és libpuzzle

Ahhoz, hogy gyorsan megtalálja ismétlődő kell telepíteni GD2 könyvtár és libpuzzle.

Libpuzzle célja a gyors vizuális hasonlóság keresési képek (GIF. PNG. JPEG). Először raszteres kép blokkokra osztjuk - automatikusan dobni keretek, amelyek nem hordoznak nagyon releváns információk. A különbség a szomszédos blokkok képez vektor - az úgynevezett aláírás képeket. A hasonlóság a képek által meghatározott távolságot két ilyen vektorokat. Mivel általában egy színváltozás, átméretezés vagy kompressziós nem befolyásolja az eredményeket produkáltak libpuzzle.

Hogyan lehet azonosítani ismétlődő képeket php, savepearlharbor

Libpuzzle nagyon könnyen használható. Az aláírás kiszámítása a két kép:

Kiszámítása közötti távolság az aláírásokat:

Ellenőrizze a hasonlóság a képek:

Compression aláírások tárolási az adatbázisban:

észlelési hash

Valószínűleg a legpontosabb módszer a megállapítás ismétlődő - file összehasonlítás révén észlelési hash. Ellenőrzése hasonlóság végzik megszámoljuk a különböző álláspontok két hash ez Hamming-távolság. A távolság kisebb - minél több véletlen.

Hogyan lehet azonosítani ismétlődő képeket php, savepearlharbor

Telepítés UNIX platformon az alábbiak szerint:

Próbálja ténylegesen lehetővé i.onthe.io/phash. Képek letöltése a felületen keresztül, és a kimeneti indikátor „egyezőség”.

Ez hogy működik

Megkapjuk a hash az első kép:

Megkapjuk a hash-t a második kép:

Kapunk egy Hamming távolság a két kép között:

Tettünk szinte az összes lehetséges manipuláció ugyanazon fotó ellenőrizni - milyen változások zavarják érzékeli az ismétlődő keresztül pHash, és mi - nem.
Például, ha egy tükörképe - a kép még meg nem jelenített.
De lehet játszani a színekkel, mint szükséges - az összehasonlítás eredménye nem befolyásolja.
Mit lehet mondani a manipuláció az RGB-csatornák, ismét John nem ismerte fel. bár a Hamming-távolság ebben az esetben sokkal kisebb.

További eredmények a következők:

Ne zavarja (Hamming-távolság = 0)

Zavarja (Hamming távolság - zárójelben)

Változtassuk meg a színeket és az egyértelműség

* Ez függ a kropnutyh területen. A vágás során a képkeret egy kis számú képpont vastag, a Hamming-távolság nulla lesz, tehát a hasonlóság - 100%. De a tárgyi növény - minél nagyobb a távolság - minél kisebb az esélye a megállapítás ismétlődő. A keresés ismétlődéseket kropnutyh keresztül észlelési hash itt olvasható.

** ugyanaz, mint egy növény. Ha forgatja néhány fokkal el kicsit, de annál nagyobb a dőlésszög - minél nagyobb a különbség.

  1. Összehasonlítani a képeket ImageMagicknek. és keresni teljesen azonosak - összehasonlítva a hash.
  2. Ahhoz, hogy megtalálja egy kissé módosított képek - használja a könyvtárat libpuzzle.
  3. Összehasonlítás felett észlelési hash - az egyik legmegbízhatóbb, próbáljuk itt.

Kapcsolódó cikkek