Algoritmo per confrontare due immagini


158

Dati due diversi file di immagine (in qualunque formato scelgo), devo scrivere un programma per prevedere la possibilità se uno è la copia illegale di un altro. L'autore della copia può fare cose come ruotare, rendere negativo o aggiungere dettagli banali (oltre a cambiare la dimensione dell'immagine).

Conosci qualche algoritmo per fare questo tipo di lavoro?


12
Come si determina quale è l'originale?
jfs,

1
Suppongo che abbia l'originale e debba verificare se un file esterno è una copia trasformata o non correlato all'originale.
Unfa,

Risposte:


304

Queste sono semplicemente idee a cui ho pensato al problema, mai provato ma mi piace pensare a problemi come questo!

Prima di iniziare

Prendi in considerazione la normalizzazione delle immagini, se una è una risoluzione più alta dell'altra, considera l'opzione che una sia una versione compressa dell'altra, quindi ridimensionare la risoluzione potrebbe fornire risultati più accurati.

Valuta la possibilità di scansionare varie aree potenziali dell'immagine che potrebbero rappresentare porzioni ingrandite dell'immagine e varie posizioni e rotazioni. Inizia a diventare complicato se una delle immagini è una versione distorta di un'altra, questi sono il tipo di limitazioni che dovresti identificare e scendere a compromessi.

Matlab è uno strumento eccellente per testare e valutare le immagini.

Test degli algoritmi

Dovresti testare (come minimo) un grande insieme di dati di test analizzati dall'uomo in cui le partite sono note in anticipo. Se ad esempio nei tuoi dati di test hai 1.000 immagini in cui il 5% corrisponde, ora hai un benchmark ragionevolmente affidabile. Un algoritmo che trova il 10% di positivi non è buono come quello che trova il 4% di positivi nei nostri dati di test. Tuttavia, un algoritmo può trovare tutte le corrispondenze, ma ha anche un alto tasso di falsi positivi del 20%, quindi ci sono diversi modi per valutare i tuoi algoritmi.

I dati del test dovrebbero tentare di essere progettati per coprire il maggior numero possibile di dinamiche che ci si aspetterebbe di trovare nel mondo reale.

È importante notare che ogni algoritmo per essere utile deve funzionare meglio delle ipotesi casuali, altrimenti è inutile per noi!

È quindi possibile applicare il software nel mondo reale in modo controllato e iniziare ad analizzare i risultati che produce. Questo è il tipo di progetto software che può continuare all'infinito, ci sono sempre modifiche e miglioramenti che puoi apportare, è importante tenerlo presente quando lo si progetta in quanto è facile cadere nella trappola del progetto senza fine.

Secchi di colore

Con due immagini, scansiona ogni pixel e conta i colori. Ad esempio potresti avere i 'secchi':

white
red
blue
green
black

(Ovviamente avresti una risoluzione più alta dei contatori). Ogni volta che trovi un pixel "rosso", aumenti il ​​contatore rosso. Ogni secchio può essere rappresentativo dello spettro di colori, maggiore è la risoluzione più accurata, ma è necessario sperimentare un tasso di differenza accettabile.

Una volta che hai i tuoi totali, confrontali con i totali per una seconda immagine. Potresti scoprire che ogni immagine ha un'impronta abbastanza unica, abbastanza per identificare le corrispondenze.

Rilevazione dei bordi

Che ne dici di usare Edge Detection . (fonte: wikimedia.org )testo alternativo

Con due immagini simili il rilevamento dei bordi dovrebbe fornire un footprint unico utilizzabile e abbastanza affidabile.

Scatta entrambe le foto e applica il rilevamento dei bordi. Forse misurare lo spessore medio dei bordi e quindi calcolare la probabilità che l'immagine possa essere ridimensionata e ridimensionare se necessario. Di seguito è riportato un esempio di un filtro Gabor applicato (un tipo di rilevamento dei bordi) in varie rotazioni.

testo alternativo

Confronta le immagini pixel per pixel, conta le corrispondenze e le non corrispondenze. Se rientrano in una determinata soglia di errore, hai una corrispondenza. Altrimenti, potresti provare a ridurre la risoluzione fino a un certo punto e vedere se la probabilità di una corrispondenza migliora.

Regioni di interesse

Alcune immagini possono avere segmenti / regioni di interesse distintivi. Queste regioni probabilmente contrastano fortemente con il resto dell'immagine e sono un buon oggetto da cercare nelle altre immagini per trovare corrispondenze. Prendi questa immagine per esempio:

testo alternativo
(fonte: meetthegimp.org )

L'operaio edile in blu è una regione di interesse e può essere utilizzato come oggetto di ricerca. Esistono probabilmente diversi modi in cui è possibile estrarre proprietà / dati da questa regione di interesse e utilizzarli per eseguire ricerche nel set di dati.

Se hai più di 2 regioni di interesse, puoi misurare le distanze tra loro. Prendi questo esempio semplificato:

testo alternativo
(fonte: per2000.eu )

Abbiamo 3 chiare regioni di interesse. La distanza tra la regione 1 e 2 può essere di 200 pixel, tra 1 e 3 400 pixel e 2 e 3 200 pixel.

Cerca altre immagini per regioni simili di interesse, normalizza i valori della distanza e vedi se hai potenziali corrispondenze. Questa tecnica potrebbe funzionare bene per le immagini ruotate e ridimensionate. Maggiore è il numero di regioni di interesse, la probabilità di una corrispondenza aumenta all'aumentare della misurazione della distanza.

È importante pensare al contesto del set di dati. Se ad esempio il tuo set di dati è arte moderna, le regioni di interesse funzionerebbero abbastanza bene, poiché le regioni di interesse sono state probabilmente progettate per essere una parte fondamentale dell'immagine finale. Se tuttavia hai a che fare con immagini di siti di costruzione, le aree di interesse potrebbero essere interpretate dalla fotocopiatrice illegale come brutte e potrebbero essere ritagliate / modificate liberamente. Tieni a mente le caratteristiche comuni del tuo set di dati e cerca di sfruttare tale conoscenza.

Morphing

Morphing due immagini è il processo di trasformare un'immagine nell'altra attraverso una serie di passaggi:

testo alternativo

Nota, questo è diverso dallo sbiadire un'immagine in un'altra!

Esistono molti pacchetti software che possono trasformare le immagini. È tradizionalmente usato come effetto di transizione, due immagini non si trasformano in qualcosa a metà strada di solito, uno estremo si trasforma nell'altro estremo come risultato finale.

Perché questo potrebbe essere utile? A seconda dell'algoritmo di morphing utilizzato, potrebbe esserci una relazione tra somiglianza delle immagini e alcuni parametri dell'algoritmo di morphing.

In un esempio grossolanamente semplificato, un algoritmo potrebbe essere eseguito più velocemente quando ci sono meno modifiche da apportare. Sappiamo quindi che esiste una maggiore probabilità che queste due immagini condividano le proprietà tra loro.

Questa tecnica potrebbe funzionare bene per le immagini copiate ruotate, distorte, inclinate, ingrandite. Ancora una volta questa è solo un'idea che ho avuto, non si basa su alcuna università ricercata per quanto ne sappia (non ho un aspetto difficile però), quindi potrebbe essere molto lavoro per te con risultati limitati / nessun risultato.

Zipping

La risposta di Ow in questa domanda è eccellente, ricordo di aver letto di questo tipo di tecniche che studiano l'IA. È abbastanza efficace nel confrontare i lessici corpus.

Un'ottimizzazione interessante quando si confrontano i corpus è che puoi rimuovere le parole considerate troppo comuni, ad esempio "The", "A", "And" ecc. Queste parole diluiscono il nostro risultato, vogliamo capire quanto sono diversi i due corpus quindi questi possono essere rimossi prima dell'elaborazione. Forse ci sono segnali comuni simili nelle immagini che potrebbero essere rimossi prima della compressione? Potrebbe valere la pena esaminarlo.

Il rapporto di compressione è un modo molto rapido e ragionevolmente efficace per determinare quanto siano simili due serie di dati. Leggere su come funziona la compressione ti darà una buona idea del perché questo potrebbe essere così efficace. Per un algoritmo a rilascio rapido questo sarebbe probabilmente un buon punto di partenza.

Trasparenza

Ancora una volta non sono sicuro di come vengano archiviati i dati sulla trasparenza per determinati tipi di immagini, gif png, ecc., Ma questo sarà estraibile e servirebbe da efficace ritaglio semplificato per confrontarlo con la trasparenza dei set di dati.

Inversione dei segnali

Un'immagine è solo un segnale. Se si riproduce un rumore da un altoparlante e si riproduce il rumore opposto in un altro altoparlante in perfetta sincronia allo stesso volume esatto, si annullano a vicenda.

testo alternativo
(fonte: themotorreport.com.au )

Inverti le immagini e aggiungile sull'altra immagine. Ridimensiona ripetutamente / posiziona i loop ripetutamente fino a trovare un'immagine risultante in cui un numero sufficiente di pixel sia bianco (o nero? Mi riferirò ad esso come una tela neutra) per fornirti una corrispondenza positiva o una corrispondenza parziale.

Tuttavia, considera due immagini uguali, tranne per il fatto che a una di esse è applicato un effetto schiarente:

testo alternativo
(fonte: mcburrz.com )

Invertire una di esse, quindi aggiungerla all'altra, non si tradurrà in una tela neutra che è ciò a cui miriamo. Tuttavia, confrontando i pixel di entrambe le immagini originali, possiamo sicuramente vedere una chiara relazione tra i due.

Non studio il colore da alcuni anni ormai e non sono sicuro che lo spettro dei colori sia su una scala lineare, ma se hai determinato il fattore medio della differenza di colore tra le due immagini, puoi utilizzare questo valore per normalizzare i dati prima di elaborarli con questa tecnica.

Strutture dati dell'albero

Inizialmente questi non sembrano adattarsi al problema, ma penso che potrebbero funzionare.

Potresti pensare di estrarre determinate proprietà di un'immagine (ad esempio i bin di colore) e generare un albero di huffman o una struttura di dati simile. Potresti riuscire a confrontare due alberi per somiglianza. Ciò non funzionerebbe bene con i dati fotografici, ad esempio con un ampio spettro di colori, ma i cartoni animati o altre immagini con set di colori ridotti potrebbero funzionare.

Questo probabilmente non funzionerebbe, ma è un'idea. La trie datastructure è ottima per conservare i lessici, ad esempio una dizione . È un albero di prefissi. Forse è possibile costruire un'immagine equivalente di un lessico, (di nuovo posso solo pensare ai colori) per costruire un trie. Se riduci, ad esempio, un'immagine 300x300 in quadrati 5x5, quindi decomponi ogni quadrato 5x5 in una sequenza di colori, potresti creare un trie dai dati risultanti. Se un quadrato 2x2 contiene:

FFFFFF|000000|FDFD44|FFFFFF

Abbiamo un codice trie abbastanza unico che estende 24 livelli, aumentando / diminuendo i livelli (IE riducendo / aumentando le dimensioni del nostro sub quadrato) può produrre risultati più accurati.

Il confronto tra alberi di trie dovrebbe essere ragionevolmente facile e potrebbe fornire risultati efficaci.

Più idee

Mi sono imbattuto in un'interessante raccolta di documenti sulla classificazione delle immagini satellitari , delinea:

Le misure di trama considerate sono: matrici di ricorrenza, differenze di livello di grigio, analisi dei toni di trama, caratteristiche derivate dallo spettro di Fourier e filtri di Gabor. Alcune caratteristiche di Fourier e alcuni filtri Gabor sono state ritenute buone scelte, in particolare quando per la classificazione è stata utilizzata una singola banda di frequenza.

Potrebbe valere la pena indagare su tali misurazioni in modo più dettagliato, sebbene alcune di esse potrebbero non essere rilevanti per il tuo set di dati.

Altre cose da considerare

Probabilmente ci sono molti articoli su questo genere di cose, quindi la lettura di alcuni di essi dovrebbe aiutare anche se possono essere molto tecnici. Si tratta di un'area estremamente difficile nel campo dell'informatica, con molte ore di lavoro inutili spese da molte persone che tentano di fare cose simili. Mantenerlo semplice e basarsi su quelle idee sarebbe il modo migliore per andare. Dovrebbe essere una sfida ragionevolmente difficile creare un algoritmo con un tasso di corrispondenza migliore rispetto a quello casuale e iniziare a migliorare su questo inizia davvero a diventare piuttosto difficile da raggiungere.

Ogni metodo dovrebbe probabilmente essere testato e ottimizzato a fondo, se hai qualche informazione sul tipo di immagine che verifichi anche, questo sarebbe utile. Ad esempio gli annunci pubblicitari, molti di essi contengono testo, quindi fare il riconoscimento del testo sarebbe un modo semplice e probabilmente molto affidabile per trovare corrispondenze, specialmente se combinato con altre soluzioni. Come accennato in precedenza, prova a sfruttare le proprietà comuni del tuo set di dati.

Combinare misure e tecniche alternative, ciascuna delle quali può avere un voto ponderato (in base alla loro efficacia) sarebbe un modo per creare un sistema che generi risultati più accurati.

Se impiegando algoritmi multipli, come menzionato all'inizio di questa risposta, si potrebbero trovare tutti gli aspetti positivi ma avere un tasso di falsi positivi del 20%, sarebbe interessante studiare le proprietà / i punti di forza / le debolezze di altri algoritmi come un altro algoritmo potrebbe essere efficace nell'eliminazione dei falsi positivi restituiti da un altro.

Fai attenzione a non cadere nel tentativo di completare il progetto senza fine, buona fortuna!


22
Risposta eccezionale. Complimenti per una risposta ben ponderata e illuminante.
Andrew Hubbs,

Grazie! Spero di ampliarlo domani, ho altre idee su cui mi piacerebbe pensare e cercare.
Tom Gullen,

Ciao Tom, conosci qualche libreria open source per il rilevamento dei bordi, pref in java?
Richard H,

1
Ciao Richard, non mi dispiace, ma sono sicuro che ce ne sono alcuni là fuori. Cerca su Google "Java Gabor Filters" o "Java Edge Detection" e sono sicuro che ne incontrerai uno o due.
Tom Gullen,

Il link per l'immagine ( blog.meetthegimp.orgwp-content / uploads / 2009/04 / 97.jpg ) è andato male. Si noti che stackoverflow ora ha un servizio di hosting di immagini.
ThomasW,

36

Leggi l'articolo: Porikli, Fatih, Oncel Tuzel e Peter Meer. "Tracciamento della covarianza mediante aggiornamento del modello basato su medie su collettori riemanniani". (2006) IEEE Computer Vision e Pattern Recognition.

Sono stato in grado di rilevare con successo le regioni sovrapposte nelle immagini catturate dalle webcam adiacenti utilizzando la tecnica presentata in questo documento. La mia matrice di covarianza era composta da output di rilevamento aspetto / bordo Sobel, canny e SUSAN, nonché pixel in scala di grigi originali.


1
Logica @Satoru: la ricerca su Google mostra i risultati sul foglio: google.com/… .
Nick,

34

Un'idea:

  1. utilizzare i rilevatori di punti chiave per trovare descrittori invarianti di scala e trasformazione di alcuni punti nell'immagine (ad es. SIFT, SURF, GLOH o LESH).
  2. prova ad allineare i punti chiave con descrittori simili di entrambe le immagini (come nelle cuciture panoramiche), se necessario per consentire alcune trasformazioni dell'immagine (ad es. ridimensionamento e rotazione o allungamento elastico).
  3. se molti punti chiave si allineano bene (esiste una tale trasformazione, l'errore di allineamento dei punti chiave è basso o se "l'energia" della trasformazione è bassa, ecc.), è probabile che abbiate immagini simili.

Il passaggio 2 non è banale. In particolare, potrebbe essere necessario utilizzare un algoritmo intelligente per trovare il punto chiave più simile sull'altra immagine. I descrittori di punti sono generalmente di dimensioni molto elevate (come un centinaio di parametri) e ci sono molti punti da esaminare. kd-trees può essere utile qui, le ricerche di hash non funzionano bene.

varianti:

  • Rileva bordi o altre caratteristiche anziché punti.

2
Penso che sia anche l'approccio giusto. Solo un dettaglio: SIFT, SURF, GLOH non sono rilevatori di punti chiave. Sono descrittori di punti chiave. I rilevatori di punti chiave comuni sono (invarianti di scala) rilevatori DoG, Harris o Eigenvalue.
Niki,

Per il passaggio 2, puoi utilizzare i vicini più vicini, che usano la distanza euclidea tra i descrittori
MobileCushion

15

È davvero molto meno semplice di quanto sembri :-) Il suggerimento di Nick è buono.

Per iniziare, tieni presente che qualsiasi metodo di confronto utile funzionerà essenzialmente convertendo le immagini in una forma diversa, una forma che semplifica la scelta di funzionalità simili. Di solito, questa roba non rende la lettura molto leggera ...


Uno degli esempi più semplici a cui riesco a pensare è semplicemente usare lo spazio colore di ogni immagine. Se due immagini hanno distribuzioni cromatiche molto simili, puoi essere ragionevolmente sicuro che mostrano la stessa cosa. Almeno, puoi avere abbastanza certezza da contrassegnarlo o fare più test. Il confronto delle immagini nello spazio colore resisterà anche a cose come la rotazione, il ridimensionamento e alcuni ritagli. Ovviamente, non resisterà a pesanti modifiche dell'immagine o ricolorazioni pesanti (e anche un semplice cambiamento di tonalità sarà in qualche modo complicato).

http://en.wikipedia.org/wiki/RGB_color_space
http://upvector.com/index.php?section=tutorials&subsection=tutorials/colorspace


Un altro esempio riguarda qualcosa chiamato la trasformazione di Hough. Questa trasformazione essenzialmente decompone un'immagine in un insieme di linee. Puoi quindi prendere alcune delle linee più "forti" in ogni immagine e vedere se si allineano. Puoi fare un lavoro extra per cercare di compensare anche la rotazione e il ridimensionamento - e in questo caso, dal momento che il confronto di alcune righe è MOLTO meno lavoro computazionale che fare lo stesso con intere immagini - non sarà così male.

http://homepages.inf.ed.ac.uk/amos/hough.html
http://rkb.home.cern.ch/rkb/AN16pp/node122.html
http://en.wikipedia.org/wiki/ Hough_transform


8

Nella forma da te descritta, il problema è difficile. Consideri copia, incolla di una parte dell'immagine in un'altra immagine più grande come una copia? eccetera.

Se fai un passo indietro, questo è più facile da risolvere se filigrana le immagini principali. Dovrai utilizzare uno schema di filigrana per incorporare un codice nell'immagine. Per fare un passo indietro, al contrario di alcuni degli approcci di basso livello (rilevamento dei bordi, ecc.) Suggeriti da alcune persone, un metodo di filigrana è superiore perché:

È resistente agli attacchi di elaborazione del segnale ► Ottimizzazione del segnale - nitidezza, contrasto, ecc. ► Filtro - mediana, passa basso, passa alto, ecc. ► Rumore additivo - Gaussiano, uniforme, ecc. ► Compressione con perdita di dati - JPEG, MPEG, ecc.

È resistente agli attacchi geometrici ► Trasformazioni affine ► Riduzione dei dati - ritaglio, ritaglio, ecc. ► Distorsioni locali casuali ► Deformazione

Fai qualche ricerca sugli algoritmi di filigrana e sarai sulla strada giusta per risolvere il tuo problema. (Nota: è possibile eseguire il benchmark del metodo utilizzando il set di dati STIRMARK . È uno standard accettato per questo tipo di applicazione.


5

Questo è solo un suggerimento, potrebbe non funzionare e sono pronto per essere chiamato.

Ciò genererà falsi positivi, ma si spera non falsi negativi.

  1. Ridimensiona entrambe le immagini in modo che abbiano le stesse dimensioni (suppongo che il rapporto tra larghezza e lunghezza sia lo stesso in entrambe le immagini).

  2. Comprimi una bitmap di entrambe le immagini con un algoritmo di compressione senza perdita di dati (ad esempio gzip).

  3. Trova coppie di file con dimensioni di file simili. Ad esempio, puoi semplicemente ordinare ogni coppia di file che hai per quanto siano simili le dimensioni dei file e recuperare la X in alto.

Come ho detto, questo genererà sicuramente falsi positivi, ma si spera non falsi negativi. Puoi implementarlo in cinque minuti, mentre il Porikil et. al. richiederebbe probabilmente un ampio lavoro.


Mi piace molto questa soluzione, facile da implementare e credo che produrrà un tasso di identificazione migliore di quello casuale
Tom Gullen

Questa è una domanda: funziona se la copia è stata salvata con una risoluzione diversa?
Dr. belisarius,

4

Credo che se sei disposto ad applicare l'approccio a ogni possibile orientamento e alle versioni negative, un buon inizio per il riconoscimento delle immagini (con una buona affidabilità) è usare le autovetture: http://en.wikipedia.org/wiki/Eigenface

Un'altra idea sarebbe quella di trasformare entrambe le immagini in vettori dei loro componenti. Un buon modo per farlo è creare un vettore che opera in dimensioni x * y (x è la larghezza dell'immagine e y è l'altezza), con il valore per ogni dimensione che si applica al valore di pixel (x, y). Quindi esegui una variante dei vicini K-più vicini con due categorie: corrispondenza e nessuna corrispondenza. Se è sufficientemente vicino all'immagine originale, rientrerà nella categoria di corrispondenza, altrimenti non lo farà.

K I vicini più vicini (KNN) possono essere trovati qui, ci sono anche altre buone spiegazioni sul web: http://en.wikipedia.org/wiki/K-nearest_neighbor_algorithm

I vantaggi di KNN sono che più varianti stai confrontando con l'immagine originale, più accurato diventa l'algoritmo. Il rovescio della medaglia è che è necessario un catalogo di immagini per addestrare prima il sistema.


1
Una buona idea ma solo se nei dati sono presenti facce. Inoltre identifica le persone, non le situazioni. Pertanto un attore professionista che compare in più pubblicazioni genererebbe molti falsi positivi.
Tom Gullen,

A meno che non fraintenda la tua intenzione di utilizzo
Tom Gullen,

In realtà credo che l'algoritmo funzioni indipendentemente dall'argomento, quindi se si confrontano gli alberi sarebbe utile. Capita solo di chiamarsi Eigenfaces perché è classicamente associato al riconoscimento facciale. Finché l'elemento da cercare possiede le stesse caratteristiche generali dell'elemento con cui stai confrontando dovrebbe funzionare.
Nick Udell,

Troppo lungo da aggiungere al commento precedente: Inoltre: le autovetture confrontano l'intera immagine, non solo le facce sullo schermo. Gli esempi su Wikipedia usano solo volti ritagliati perché l'applicazione tradizionale è il riconoscimento facciale, per il quale solo il volto è utile. Se il tuo attore apparisse in posizioni diverse, sarebbe contrassegnato come diverso.
Nick Udell,

1
Dubito che applicare KNN direttamente sui valori di pixel non elaborati sarebbe di grande aiuto. Piccole traduzioni / rotazioni in genere portano a enormi differenze nei valori dei pixel non elaborati, soprattutto se l'immagine contiene contrasti netti o linee sottili. Quindi le versioni arbitrariamente trasformate della stessa immagine non sono molto vicine tra loro in quello spazio (non cadono in gruppi) e KNN non funzionerà molto bene. Immagino che potrebbe funzionare bene sugli istogrammi di immagine o su qualche altra rappresentazione invariante della trasformazione dell'immagine.
Niki,

1

Se sei disposto a prendere in considerazione un approccio completamente diverso per rilevare copie illegali delle tue immagini, potresti prendere in considerazione la filigrana . (da 1.4)

... inserisce le informazioni sul copyright nell'oggetto digitale senza perdita di qualità. Ogni volta che il copyright di un oggetto digitale è in questione, queste informazioni vengono estratte per identificare il legittimo proprietario. È anche possibile codificare l'identità dell'acquirente originale insieme all'identità del detentore del copyright, che consente di rintracciare eventuali copie non autorizzate.

Anche se è anche un campo complesso, ci sono tecniche che consentono alle informazioni della filigrana di persistere attraverso una grossolana modifica dell'immagine: (da 1.9)

... qualsiasi trasformazione del segnale di potenza ragionevole non può rimuovere la filigrana. Quindi un pirata disposto a rimuovere la filigrana non avrà successo a meno che non indeboliscano troppo il documento per essere di interesse commerciale.

ovviamente, le domande frequenti richiedono l'implementazione di questo approccio: "... molto impegnativo" ma se ci riesci, hai una grande fiducia sul fatto che l'immagine sia una copia o meno, piuttosto che una probabilità percentuale.


Altre informazioni su come persiste la filigrana dopo modifiche pesanti? Sembra molto interessante.
Tom Gullen,

1

Se stai usando Linux, suggerirei due strumenti:

align_image_stack dal pacchetto hugin-tools - è un programma a riga di comando in grado di correggere automaticamente la rotazione, il ridimensionamento e altre distorsioni (è principalmente destinato alla composizione di fotografie HDR, ma funziona anche con cornici video e altri documenti). Ulteriori informazioni: http://hugin.sourceforge.net/docs/manual/Align_image_stack.html

confronta dal pacchetto imagemagick - un programma che può trovare e contare la quantità di pixel diversi in due immagini. Ecco un tutorial accurato: http://www.imagemagick.org/Usage/compare/ uising -fuzz N% è possibile aumentare la tolleranza agli errori. Maggiore è la N maggiore è la tolleranza di errore per contare ancora due pixel uguali.

align_image_stack dovrebbe correggere qualsiasi offset in modo che il comando compare abbia effettivamente la possibilità di rilevare gli stessi pixel.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.