Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Confronto immagini

  1. #1
    Utente di HTML.it L'avatar di Dark867
    Registrato dal
    Mar 2010
    Messaggi
    435

    Confronto immagini

    Ciao, ho 2 oggetti di tipo BufferedImage e vorrei stabilire se le immagini relative sono uguali.
    Ovviamente un primo modo potrebbe essere quello di confrontare ogni pixel, ma mi sembra troppo dispendioso..c'è qualche metodo o qualche classe più performante? Grazie mille

  2. #2
    Utente di HTML.it L'avatar di Dark867
    Registrato dal
    Mar 2010
    Messaggi
    435
    Dai nessuno?
    Inoltre ho un altro problema: io per le immagini sono abituato a usare il matlab...tenendo conto che java mi da la rappresentazione in RGB, mentre io vorrei la versione a scala di grigi per fare il confronto, come posso fare?Le immagini le posso anche ottenere in un formato YUV che è migliore, ma come isolo la componente Y?

  3. #3
    ciao sono molto interessato al tema del confronto delle immagini.
    hai qualche esempio da passarmi e se si come hai risolto.
    Ti ringrazio ciao

  4. #4
    Utente di HTML.it L'avatar di Dark867
    Registrato dal
    Mar 2010
    Messaggi
    435
    Guarda per adesso la soluzione migliore che ho trovato è stata quella di usare la classe PixelGrabber per ricavarmi 2 array di interi per entrambe le immagini, poi di ogni elemento ho preso solo la componente Y (facendo uno shift di 16bit >>16) e ho calcolato la somma delle differenze in modulo verificando che fosse inferiore a una certa soglia...a funzionare funziona ma credo ci siano metodi migliori.

  5. #5
    Ciao, comunque di algoritmi per il confronto ce ne sono molti se fai una ricerca su google, semplicemente con le parole: algorithm compare image.
    E poi ti potrebbe aiutare ancor di più selezionare gli algoritmi in base a quello che vuoi, nel senso che ci sono alcuni algoritmi che funzionano anche confrontando due immagini sfasate tra loro, traslate, con diversa intensità ecc. Io utilizzai uno applicato nel confronto tra impronte digitali, e si applicavano i grafi, feci una ricerca su internet e trovai un documento e poi tradussi quel documento in righe di codice.
    Il consiglio è sempre quello: solo google può risponderti.
    Ciao.

  6. #6
    ok grazie dei consigli.
    vedo se riesco afare qualcosa e poi posto un pò di codice sul forum per chi è interessato. ciao grazie

  7. #7
    Utente di HTML.it L'avatar di Dark867
    Registrato dal
    Mar 2010
    Messaggi
    435
    Originariamente inviato da ziobacco
    Ciao, comunque di algoritmi per il confronto ce ne sono molti se fai una ricerca su google, semplicemente con le parole: algorithm compare image.
    E poi ti potrebbe aiutare ancor di più selezionare gli algoritmi in base a quello che vuoi, nel senso che ci sono alcuni algoritmi che funzionano anche confrontando due immagini sfasate tra loro, traslate, con diversa intensità ecc. Io utilizzai uno applicato nel confronto tra impronte digitali, e si applicavano i grafi, feci una ricerca su internet e trovai un documento e poi tradussi quel documento in righe di codice.
    Il consiglio è sempre quello: solo google può risponderti.
    Ciao.
    Il problema è che non vorrei perdere troppo tempo a implementare da me l'algoritmo, ma ero alla ricerca di qualche classe java che facesse il lavoro sporco per me, o almeno qualche frammento di codice
    Praticamente sto creando (ho creato, se vogliamo lasciare la mia implementazione precedente) un sistema di video sorveglianza, quindi l'esigenza fondamentale è quella di confrontare 2 frame molto velocemente anche accontentandomi che siano uguali al di sotto di una certa soglia ma il requisito stringente è il quasi real time! La cam da cui ricevo i dati è settata a 2 frame per secondo e le frame sono 160x120 quindi forse il mio calcolo della dev standard può essere tranquillamente adatto allo scopo, ma se puoi consigliarmi qualche algoritmo più efficiente che conosci o anche un sito che ne parla te ne sarei grato^^

  8. #8
    ciao

    anche io sono in cerca di codice per il confronto, a me interessa solo confrontare dettagliatamente due immagini , non mi interessa la velocità, sono arrivato ad avere due BufferedImage , ma non riesco a confrontarli pixel x pixel ,e mi serverebbe anche che il sistema si accorga se un immagine e traslata su un ipotetico asse delle ascisse.

    tu che hai già fatto qualcosta mi potresti postare un pò di codice?

    te ne sarei grato , ma non riesco a trovare nulla. ciao grazie

  9. #9
    Utente di HTML.it L'avatar di Dark867
    Registrato dal
    Mar 2010
    Messaggi
    435
    Per quello che devi fare tu forse sarebbe meglio il matlab...cmq questo è il codice per il confronto tra 2 immagini:
    codice:
    int[] pixels1 = null;
    int[] pixels2 = null;
    PixelGrabber grabber = new PixelGrabber(firstImage,0,0,width,
    					height,false);
    			try {
    				grabber.grabPixels();
                                    pixels1 = (int[])grabber.getPixels();
    
                          //faccio lo stesso per la seconda immagine..
    
    //il confronto è questo (numPix = pixels1.length).
    
    private int calcDiff(int[] first, int[]second){
    			int sum = 0;
    			for(int i=0;i<numPix;i++)
    				sum+= Math.abs((first[i]>>16)-(second[i]>>16));
    			
    			return sum/numPix;
    		}
    Non è proprio la deviazione standard, perché il calcolo del quadrato e della radice mi avrebbe preso tempo, ma puoi modificarla per i tuoi scopi.
    La funzione restituisce la differenza globale, se 2 immagini sono perfettamente uguali restituisce ovviamente zero.

  10. #10
    ciao grazie del codice postato.
    ora riesco a istinguere se ci sono differenze fra le immagini.
    mi potresti spiegare come funziona :

    sum+= Math.abs((first[i]>>16)-(second[i]>>16));

    perche vorrei ora individuare i pixel differenti.

    grazie ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.