5

Il mio obiettivo è fornire 2 file di immagine e ottenere una risposta vero/falso sul fatto che questi due file possano essere uguali (entro un livello accettabile di certezza).confronto delle immagini a livello di codice - lib o classe

Mi rendo conto che questa domanda rientra nell'intelligenza artificiale ed è molto più complessa di quanto sembri, quindi dubito fortemente che potrei (o anche solo voler) farlo da solo. Quello che sto cercando è probabilmente una biblioteca o una classe. Sto lavorando con PHP.

grazie in anticipo ..

Tutte le Risposte utile/commenti alzarsi votato ..

Aggiornamento:

Mi chiedo se sono di complicare eccessivamente, e forse un libreria più generale come imageMagick (imagick) potrebbe averlo fatto? Chi ha più esperienza con imageMagick?

+0

Cosa intendi per "lo stesso"? In particolare, intendi esattamente lo stesso, stessi pixel, ecc .; o sembra simile se visto da una persona; o qualcosa in mezzo a questi? – tom10

+0

Lo stesso per i miei scopi potrebbe essere; l'immagine 1 è solo un ritaglio dell'immagine 2, l'immagine 2 con alcuni colori modificati, l'immagine 2 ridimensionata o modifiche simili. I miei bisogni sono più di questo, ma risolvere quei problemi potrebbe essere un buon inizio. – Chris

+0

OK, sembra abbastanza difficile in realtà, e che probabilmente avrai bisogno di uno strumento serio o di un algoritmo intelligente (come suggerito da Pascal Martin) per farlo funzionare. (Ma anche allora, non sembra che il Libpuzzle algo possa funzionare per le immagini ritagliate.) – tom10

risposta

1

http://tineye.com/ può essere utile se si sta solo confrontando le proprie immagini.

Probabilmente dovresti fare qualche ricerca sugli algoritmi di somiglianza delle immagini, anche se qualcosa di avanzato non si adatta a un linguaggio di scripting come PHP. Il metodo di confronto più semplice funzionerebbe in questo modo:

  1. Realizza entrambe le immagini delle stesse dimensioni se non lo sono già.
  2. Confronta ogni pixel corrispondente e decidi quanto sono simili. Il metodo più semplice consiste nel prendere la differenza tra i valori rossi, i valori blu, i valori verdi e la media.
  3. Prende la differenza media da tutti i pixel. Se è inferiore alla soglia che decidi, le immagini sono uguali o simili. Dovresti testare con varie immagini per decidere su una soglia.

Non sono completamente familiare con ImageMagick e le funzioni di immagine di PHP, quindi non sono sicuro che tu possa fare tutto questo.

+0

Grazie per la risposta. Guarderà Tineye. – Chris

+0

In realtà ora che ho guardato questo tineye, sembra decente per quello di cui ho bisogno. Penso che andrò con quella parte attraverso di loro. L'unica cosa che vorrei fosse una API per l'automazione. – Chris

5

Non ho provato, ma forse Libpuzzle potrebbe fare il trucco (citando):

La biblioteca Puzzle è stato progettato per rapidamente trovare visivamente immagini simili (GIF, PNG, JPG), anche se hanno ridimensionato, ricompresso, ricolorato o leggermente modificato.

Questa è una libreria C, ma viene anche con uno strumento da riga di comando e binding di PHP.

E c'è un esempio in PHP there.

(sembra essere un'estensione PHP - il che significa che è necessario essere amministratore del server per essere in grado di installarlo)

Problemi correlati