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