29. januar 2002 - 22:33Der er
13 kommentarer og 1 løsning
Billede sammenlignings software!!
Hej!
Jeg skal have fremstillet et stykke software der kan sammenligne to billeder. Dvs at hvis to billeder kaldes frem med et interval imellem, skal softwaren kunne checke om der er væsentlige forandringer fra det første billede og til det andet!!!
Jeg tror umiddelbart en god løsning er at lave en fourier transformation hvor du får opløst billedet i et spectrum, så kan du nemlig god se at to billeder hvor der er en lille forskel i farverne faktisk er ens aligevel.
Skal den opdage bare en pixel har ændret farve, skal du bare hårdt og brutalt sammenligne pixel for pixel.
det skal bruges som led i et digital kamera overvågningssystem, dvs at et digital kamera skal tage et billede pr. 10 sec...hvis der så fra det ene billede til det andet er sket vænsentlige forandringer, skal dette billede gennem i database!
Der findes en masse algoritmer til det formål, så du skal være mere specifik mht. hvilken forskel du ønsker at finde. Basalt set er der 2 hovedtyper: differensmetoden og baggrundsmodelmetoden. Den første en meget nem at implementere fordi man blot finder forskellen mellem to efterfølgende billeder ved at sammenligne pixel for pixel.
baggrundsmodelmetoden er den mest almindelige. I den finder man en model for baggrunden (udfordringen betår i at fínde en god model og opdatere den rigtigt) og sammenligner modellen med det nyeste billede.
Hvis du blot mangler at finde ud af hvordan man finder forskellen mellem to billeder pixel for pixel så sig til, det er ikke så svært...
tak for svaret ladyhawke....jeg er ikke helt klar over hvilken af de to metoder der ville mest hensigstmæssig at benytte. Den forskellig i billedet der skal registreres, skal ikke tage hensyn til sol lys, nat/dag, den skal f.eks registrere personer eller biler der kommer ind i billedet...så jeg ved ikke hvad du vil anbefale...
Jeg vil helt klart anbefale baggrundsmodelmetoden ! Den giver det mest stabile resultat i forhold til bevægelsesdetektering generelt. Hvis du have konstant belysningen på scenen der overvåges OG mulighed for at optage et baggrundsbillede uden bevægelse, så ville opgaven være banal. Da det ikke er tilfældet er du nødt til at lede lidt på WWW og finde nogle algoritmer der kan bruges. Afhængigt af hvilke kameraer du anvender bør du overveje et støjfilter iden du regner yderligere på billedet...
Ved du hvordan du finder forskellen mellem to pixels (samme plads, hver sit billede)? Det er lidt bøvlet, men når først ideen er der er det ikke svært...
Mht. WWW så vil du sikkert kunne finde noget på: www.citeseer.com hvis du leder efter motion detection eller lignende...
Jeg ved ikke hvordan jeg finder forskellen mellem to pixels!!. Jeg nu har valgt at have to skellige opstillinger af kameraret, et hvor det befinder sig indendørs, altså i konstant lys og et udendørs med skiftende belysning. Det gør jo så åbentbart projektet lidt nemmere mht. det konstante lys ved den indendørs opstilling! Endnu igang tak svaret!:-)
Hmm, det lyder faktisk ret spændende. Du siger at det skal bruges til at sammenligne billeder fra en scene. I dette tilfælde vil det være oplagt at bruge bevægelse som en segmentationsteknik, som en var inde på i et tidligere svar.
Den simpleste måde er, som også tidliger nævnt, differensmetoden. Du starter med et referencebillede som viser de stationære objekter; dette sammenligner du med de efterfølgende billeder. Differensen af disse to ville "udligne" de stationære komponenter så der kun er ikke-stationære billedekomponenter tilbage. Dvs. at dit differense billede ser ud som følger:
Ergor et binært billede hvor 1 betyder bevægelse/ændring. Tit vil et sådanne "et-tal" også resultere fra støj - en måde at undgå det på er ved at introducere en slags "hukommelse" i processen. I så tilfælde ignorerer man sporadiske ændringer der kun forekommer over nogle få frames.
jnrohde: Den difference metode er i teorien fin, men hvis der skal en form for grabbing med er den ikke særlig anvendelig, da det genereres støj når man grabbe/digitaliserer et billeder.
Det vil sige forskel ser ud som om den er stor.
Derfor skal man lave en spectrum analyse af billeder, f.eks. fourier transformationen. Ud fra denne kan man detektere støj som værende en minimal ændring af spectrum, hvorimod ændringer der opstår fordi en person går ind i billedet, resultere i en stror ændring af spectrum.
Hmmm, jeg ved ikke hvor seriøst dit projekt skal være, men det kan hurtigt blive ret omfattende. Jeg har selv brugt et års tid på at lave et speciale i "Netværksbaseret kameraovervågning med bevægelsesdetektering". Hvis du vil vide mere om det, kan jeg sende dig en lille klasse jeg har lavet (ImageMap) Den bruges til at indlæse et jpg. billede og giver mulighed for at finde og sætte pixelværdier... Det kræver en e-post adresse og lidt tålmodighed....
NB Hvis du kun vil vide om der er bevægelse eller ej er diskys ide helt fin, hvis du vil vide præcist hvor bevægelsen er, skal du nok bruge en mere omfattende analyse....
Du må meget gerne sende mig den lille klasse du har lavet(kampskov@vip.cybercity.dk), det ville da være helt i top!:-) NB Ind til videre skal jeg kun kunne vide om der er sket en bevægelse i billedet!
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.