Newsgroup: it.comp.lang.delphi
Titolo: Aiuto BMP ,JPG

Ciao a tutti,avrei l`esigenza di confrontare due immagini in formato
bmp o jpg
e vedere se sono differenti. Qualcuno sa darmi qualche dritta dove
trovare informazioni a riguardo? Premetto che sono un principiante in
argomento.
Ciao e grazie in anticipo.
Elio



che intendi per confrontarle? Vuoi un confronto Pixel per Pixel?
oppure ti bastano cose come dimenzione, profondita ecc?
Il Razziatore,
The Only Good Windows in an uninstalled Windows
-----------------------------------------------
E-MAILs : IlRazziat...@NOSPAMnetscape.net
WEB     : 
http://www.razziatore.dns2go.com/
ICQ     : 67552596

IlRazz...@netscape.net
 wrote in message news:<3c68232d.6370589@apache>...

Ciao, diciamo che ho delle immagini,catturate da una webcam a
intervalli di tempo piu o meno regolari es.:foto della cucina alle
08.00 am; foto della cucina alle 12.00 am. Il punto e` questo,le
immagini saranno sicuramente diverse per luminosita anche se il
soggetto e` identico.Pero` finche` questo intervallo e` lungo di
conseguenza la differenza tra le due immagini e visibile ad occhion
nudo ci sto`(relativamente!?!); ma se cosi` non fosse(intervallo di
tempo piccolissimo,differenza che non si percepisce ad occhio
nudo)come si fa` a stabilire l'ugualianza? A tal proposito pensavo ad
un confronto pixel per pixel ma non so da dove iniziare
sinceramente.Che mi dici?
Ti ringrazio spero mi darai una mano ciao :)) Elio

 sinceramente.Che mi dici?
mmm premetto che non ho mai fatto nulla di simile, ma imho in questo caso
non ti conviene controllare pixel per pixel, perche' ci saranno minime
differenze tra le due foto, sfasamenti della webcam, variazioni analogiche
ecc, tanto piu' che il jpg e' un formato che perde dettaglio.
Un'idea migliore e' un confronto un po' piu' avanzato, ad esempio applicare
un filtro per sfocare l'immagine e poi confrontare blocchi di pixel (tipo
4x4 o simile), ottenendo una specie di indice di uguaglianza. In questo caso
l'eventuale passaggo di una persona o lo spostamento di un oggetto darebbe
un indice alto, mentre hai buone possibilita' che due immagini uguali diano
differenze basse.. andrebbe fatta qualche prova comunque :)
Ciao !             {MSX}
--
{MSX}  -  
http://msx.rules.it
Mantenitore delle FAQ di it.comp.lang.delphi,
reperibili qui: 
http://gpi.infomedia.it/abc/delphi/FaqDelphi.txt

...

Grazie provero` come mi suggerisci, speriamo bene, alla prossima ciao :) elio

...

E se invece di un filtro che sfoca l`immagine(che sinceramente non
capisco come possa essermi di aiuto,magari se te potessi spiegarmelo
te ne sarei grato) ne facessi il negativo(tipo il negativo
fotografico,hai presente ?!?) ?
ciao elio

ciao elio
PIXEL per PIXEL... beh non è semplice primo perche il formato JPEG non
è dei + semplice da legere Pixel per pixel (sia per la compressione
sia per come sono salvati i pixel che non sono RGB... ma l'altro
formato ora non me lo ricordo ma quello a 4 leterre... so di essere
impreciso ma... 


 formato ora non me lo ricordo ma quello a 4 leterre...
CMYK
"CMYK identifies the four colors used in traditional printing presses, and
stands for, respectively, cyan, magenta, yellow, and black. "
--
Mauro Falzari.
"Se guardi nell'abisso, anche l'abisso guarda in te."
(Friedrich Nietzsche)

 sinceramente.Che mi dici?
Non ti conviene confrontare i pixel... piuttosto abbassa la profonditą
di colore a 16 colori (o 4 addirittura) ,e poi conta i pixel diversi e
vedi se sono raggruppati o meno. Ci sono degli algoritmi apposta
basati sulle reti neurali che riconoscono volti, mobili, ambienti...
anche in movimento o al variare delle condizioni di luce. Cerca un pņ
in giro...

 fotografico,hai presente ?!?) ?
Dunque per la sfocatura: immagina di avere due immagini del tutto identiche,
pixel per pixel. Ora ne prendi una e la fai scorrere verso destra di un
pixel. Praticamente le due immagini sono ancora identiche, solo
impercettibilmente (per l'occhio) sfasate. Pero' un check pixel per pixel
darebbe un caterva di errori, perche' i pixel sarebbero diversi. Applicando
invece una filtro che sfumi l'immagine risolvi (o diminuisci) il problema,
perche' pixel adiacenti avranno comunque colori piu' simili.
Praticamente cosi' facendo sara' piu' semplice riconoscere immagini uguali
anche se sono lievemente spostate (cosa probabile se usi una webcam)
Come puoi intuire fare il negativo dell'immagine non risolve questo
problema, e in generale e' inutile perche' le differenze tra i pixel restano
le stesse.
Comunque in generale, gli algoritmi per il "riconoscimento dei modelli", non
lavorano cercando differenze nei dettagli, ma appunto decrementando la
qualita' del modello per poter distinguere pattern comuni, lavorando per
approssimazioni.
Anche il suggerimento di Belfagor si basa sullo stesso principio, decrementi
la qualita' approssimando l'immagine e poi ci lavori. Forse nel tuo caso non
sono necessarie le reti neurali, ma e' comunque un lavoro complesso.
E' interessante vedere come dei computer possono facilmente dire se due
immagini (o modelli in generale) sono identici, ma fanno una gran fatica a
capire se sono simili (praticamente il contrario dell'uomo:)
Ciao!                    {MSX}


...

Grazie ragazzi vi faro` sapere ;-) ciao elio