[ Príspevkov: 9 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Porovnavanie obrazkov

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 30.09.2010 21:12 | Porovnavanie obrazkov

Zdravim,
potrebujem vyriesit jednu vec. Porovnavanie obrazkov. Tj, chcem daco podobne ako similar_text(), len s obrazkami.

dam dva obrazky a vypocita mi zhodu. pokusal som sa take daco napisat, ale neviem ci mi to funguje spravne, pretoze mi to pocita len velmi tesno. tak sa chcem opytat ci s tym dakto nema skusenost.

kod
Kód:
<?php
$im1 = imagecreatefromjpeg('a.jpg');
$im2 = imagecreatefromjpeg('b.jpg');

$zhoda = 0;

for($x = 0; $x<imagesx($im1); $x++){
  for($y = 0; $y<imagesy($im1); $y++){
 
    $c1 = imagecolorat($im1, $x, $y);
    $c1 = imagecolorsforindex($im1, $c1);
    $c2 = imagecolorat($im2, $x, $y);
    $c2 = imagecolorsforindex($im2, $c2);
    $zhoda += 100-(sqrt(($c1['red']-$c2['red'])*($c1['red']-$c2['red']) + ($c1['green']-$c2['green'])*($c1['green']-$c2['green']) + ($c1['blue']-$c2['blue'])*($c1['blue']-$c2['blue'])) / 255 * 173.20508075689 / 3);
 
  }
}

echo $zhoda/($x*$y) . '%';

?>


aby som vysvetlil vzorec, prisiel som k nemu len da sa povedat nahoduo, takze ani neviem ci je spravny, ale pri pokusoch to fungovalo perfektne. skusal som to tak, ze som spravil obrazok 10*10px (kvoli rychlosti). skopiroval som ho a porovnal tie dva. vypisalo 100%. otvoril som jeden z nich, zmenil som jeden pixel a uz vypisalo 98.533333333333%, aj ked teoreticky by malo vypisat 99% (lebo obrazok ma 100px a jeden je odlisny). ale to som si vysvetlil tak, ze medzi tymi farbami toho jedneho px je tiez nejaky percentualny rozdiel, takze podla mna je to celkom v pohode.

aby som ho vysvetlil.

dakde som sa docital, ze na riesenie tohto problemu je vhodne pouzit vzorec na vypocet vzdialenosti bodov v troch rovinach (link) zhodou-nahod sme sa to ucili pred dvoma dnami :D

takze ((x1-x2)^2 + (y1-y2)^2 + (z1-z2)^2)^(1/2) , pricom za x dosadzam Red, za y Green a za z Blue
cele to delim cislom 255, kvoli rozsahu a nasobim cislom 173.2050 (kvoli skale, aby som dostal rozsah od 0 do 100. k tomu cislu som prisiel tak, ze som porovnal ciernu s bielou [asi najvacsia nezhoda]). potom to delim troma, prave kvoli trom rovinam. to vlastne vypocita nezhodu, preto to odcitavam nakoniec cele od 100vky

to by bolo pekne, ale problem je, ze ja to potrebujem pouzit na fotkach dost nekvalitnych. tj seda skala (8bit), rozmery 640*480

"nasimuloval" som si tu fotografiu... vytiahol som fotografiu, dal do sedej skaly 8bit, pridal sum. potom som do tej istej fotografie pridal este trochu viacej sumu (akoze ta ista kompozicia, len fotografovanie akoze o sekundu neskor), a este som nepatrne stmavil niektore casti fotky, akoze zmena svetelnych podmienok (prechadza mrak a podobne)

to mi hodilo zhodu 96%, takze tvarme sa, ze to je tolerancia a bereme to ako zhodny snimok

Porovnavanie obrazkov

potom som tam pridal postavu (ocina :D)
Porovnavanie obrazkov
porovnal som obrazky a ono mi to hodilo zhodu len o par desatin mensiu :/, a to je to preco som vobec zalozil tuto temu.

ja chcem zistit porovnavanim fotiek ci sa na niektorej z nich deje nieco nezvycajne (prechadza auto, clovek), takze potrebujem aby to malo vacsiu citlivost.

ta moja nizka citlivost bude zrejme kvoli tomu, ze je to v zlej kvalite s vysokym sumom a seda skala (skoda, ale take su podmienky)

robim to zle alebo sa to proste v tychto podmienkach neda vyriesit?

dalsia vec je rychlost, ale to nie je take podstatne. pri tychto rozmeroch to trva cca 1,6 sekundy.. da sa to este nejako znizit?

//sorry, ze som zvacosval pismo, ale robil som to preto, ak by nahodou dakto bol lenivy citat cely text.. tak aby sa dostal k pointe

a dufam ze som nepisal ako hotentot


_________________
Sorry za prelkepy
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2 | 2
NapísalOffline : 01.10.2010 8:15 | Porovnavanie obrazkov

hackni soft dodavany k webkameram, tie mavaju aj soft na monitorovanie priestoru :)
alebo si uprav algoritmus ze dana nezhoda musi byt v ramci nejakeho vyrezu. predstav si zeby si mal dve fotky toho isteho stromu, vietor by sposobil pohyb listov a konarov co by z pohladu fotky ako celku bola pomerne velka nezhoda no pre teba nezaujimava. tvoj algoritmus by mal pri najdeni nejakej nezhody testovat ci doslo k zmene aj nejakeho vacsieho poctu pixelov v malom okruhu prvej nezhody.


Offline

Užívateľ
Užívateľ
Porovnavanie obrazkov

Registrovaný: 10.02.08
Prihlásený: 15.05.17
Príspevky: 2270
Témy: 48 | 48
Bydlisko: Nitra
NapísalOffline : 01.10.2010 8:46 | Porovnavanie obrazkov

JJ, testovať len určitý výrez by bolo lepšie. Ale, osobne si nemyslím že PHP je na toto vhodná vec, najmä kvôli času a slabým funkciám pre prácu s obrázkami, kedže php je určené pre prácu s textom na web, atď.


_________________
WYSIWYMGIYRRLAAGW: What You See Is What You Might Get If You’re Really Really Lucky And All Goes Well.
Offline

Užívateľ
Užívateľ
Porovnavanie obrazkov

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
Napísal autor témyOffline : 01.10.2010 16:22 | Porovnavanie obrazkov

Coldak, no daco ma napadlo, skusim to poobede. Zatim dik

Svolo, s php sa da urobit hodne len treba prist na vhodny sposob. A inu moznost nemam, jedine ine serverove jazyky z ktorych neovladam ziadny

edit::podarilo sa mi na tom spravit dajaku tu fintu, dam to do citatelnej podoby a ukazem to tu, nech napisete vase nazory


_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
Porovnavanie obrazkov

Registrovaný: 10.02.08
Prihlásený: 15.05.17
Príspevky: 2270
Témy: 48 | 48
Bydlisko: Nitra
NapísalOffline : 02.10.2010 18:15 | Porovnavanie obrazkov

Emer, ja viem že php má aj dosť použitelných obrázkových funkcií, avšak pokiaľ to úplne nevyfintuješ, ten čas veľmo neovplyvníš a najmä nebude práve extra malý.


_________________
WYSIWYMGIYRRLAAGW: What You See Is What You Might Get If You’re Really Really Lucky And All Goes Well.
Offline

Užívateľ
Užívateľ
Porovnavanie obrazkov

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
Napísal autor témyOffline : 02.10.2010 18:17 | Porovnavanie obrazkov

čo si blázen? :) 8 obrazkov porovna za 0,1 sekundy :)


_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
Porovnavanie obrazkov

Registrovaný: 10.02.08
Prihlásený: 15.05.17
Príspevky: 2270
Témy: 48 | 48
Bydlisko: Nitra
NapísalOffline : 04.10.2010 15:51 | Porovnavanie obrazkov

emer píše:
dalsia vec je rychlost, ale to nie je take podstatne. pri tychto rozmeroch to trva cca 1,6 sekundy.. da sa to este nejako znizit?


Potom toto bolo ako myslené?


_________________
WYSIWYMGIYRRLAAGW: What You See Is What You Might Get If You’re Really Really Lucky And All Goes Well.
Offline

Skúsený užívateľ
Skúsený užívateľ
Porovnavanie obrazkov

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
NapísalOffline : 04.10.2010 15:54 | Porovnavanie obrazkov

rozpoltená osobnosť alebo chyba vo výpočte :lol:

tiež som toho názoru, že takéto veci do php moc nepatria


_________________
C#, PHP, ...
Offline

Užívateľ
Užívateľ
Porovnavanie obrazkov

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
Napísal autor témyOffline : 04.10.2010 16:02 | Porovnavanie obrazkov

to svolo
emer píše:
edit::podarilo sa mi na tom spravit dajaku tu fintu, dam to do citatelnej podoby a ukazem to tu, nech napisete vase nazory
a v tej finte je zahrnuta aj zmena rychlosti.. no finta jak finta, sedliacky rozum

walther, inu moznost bohuzial nemam :)


_________________
Sorry za prelkepy
 [ Príspevkov: 9 ] 


Porovnavanie obrazkov



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Porovnávanie obrázkov

v Assembler, C, C++, Pascal, Java

7

151

01.01.2014 17:03

erik518

V tomto fóre nie sú ďalšie neprečítané témy.

Porovnavanie

v Redakčné systémy

0

661

13.09.2009 22:44

kajbo

V tomto fóre nie sú ďalšie neprečítané témy.

porovnavanie ... :(

v PHP, ASP

5

270

25.02.2008 11:42

r3po

V tomto fóre nie sú ďalšie neprečítané témy.

Mysql porovnávanie

v Databázy

6

487

03.01.2011 14:01

Karo88

V tomto fóre nie sú ďalšie neprečítané témy.

jQuery - porovnavanie hodnot

v JavaScript, VBScript, Ajax

0

171

15.04.2012 2:46

venom2

V tomto fóre nie sú ďalšie neprečítané témy.

Porovnávanie suborov [C]

v Assembler, C, C++, Pascal, Java

2

130

22.10.2014 0:33

nBXXL

V tomto fóre nie sú ďalšie neprečítané témy.

Porovnávanie a usporiadanie čísiel

v Ostatné programy

0

419

12.08.2008 19:13

MANIAC

V tomto fóre nie sú ďalšie neprečítané témy.

Program na porovnavanie suborov

v Ostatné programy

2

1065

03.02.2011 11:58

Stalk

V tomto fóre nie sú ďalšie neprečítané témy.

porovnavanie datum + cas pri vybere z databazy

v Databázy

2

310

09.03.2010 19:04

1daemon1

V tomto fóre nie sú ďalšie neprečítané témy.

porovnavanie 3 premennych a vypis min a max

v Assembler, C, C++, Pascal, Java

9

1282

30.07.2008 23:58

ado21

V tomto fóre nie sú ďalšie neprečítané témy.

porovnavanie udajov a editacia udajov

v PHP, ASP

10

299

07.03.2008 20:45

Blackdevil

V tomto fóre nie sú ďalšie neprečítané témy.

Tienovanie obrazkov

v HTML, XHTML, XML, CSS

9

2493

19.06.2007 17:50

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

Úprava obrázkov

v Grafické programy

2

246

29.04.2010 17:52

percussor

V tomto fóre nie sú ďalšie neprečítané témy.

Hodnotenie obrázkov

v HTML, XHTML, XML, CSS

7

342

01.03.2008 21:19

delo101

V tomto fóre nie sú ďalšie neprečítané témy.

editor obrazkov

v Grafické programy

9

774

26.01.2009 17:12

janox

V tomto fóre nie sú ďalšie neprečítané témy.

Zlepenie obrazkov

v HTML, XHTML, XML, CSS

16

537

30.06.2010 0:47

drusila



© 2005 - 2017 PCforum, edited by JanoF