Stel, je hebt een plaatje. Als je nu voor iedere rij, voor iedere pixel het verschil met de vorige bepaald, kun je zien waar iets op het plaatje aan de hand is. (Of er een vierkant om heen zetten. Of automatisch bepalen welk deel van het plaatje je gaat gebruiken om een interessante uitsnijding voor thumbnails te maken!).
Alleen, hoe bereken je het verschil tussen twee pixels? Ik had bedacht om de rgb waarden als drie assen voor te stellen, en de twee pixels als punten in dat assenstelsel. Daarna kun je de afstand uitrekenen:
Alleen, wanneer ik dat weer visualiseer, in een plaatje, krijg ik hetzelfde plaatje (maar dan met grijswaarden) weer terug in plaats van het gehoopte zwarte-lijnen spectakel. Er is dus blijkbaar iets mis met dit algoritme.
Hoe moet ik dit wél aanpakken? Iemand verstand van dit soort dingen?
Alleen, hoe bereken je het verschil tussen twee pixels? Ik had bedacht om de rgb waarden als drie assen voor te stellen, en de twee pixels als punten in dat assenstelsel. Daarna kun je de afstand uitrekenen:
PHP:
1
2
3
4
5
6
7
8
9
10
| // vergelijk met de vorige pixel $a =& $inputData[$i][$j-1]; $b =& $inputData[$i][$j]; // Bereken het verschil met de vorige pixel. $ab = floor(sqrt( pow(0.2125*abs($a['r'] - $b['r']),2) + pow(0.7154*abs($a['g'] - $b['g']),2) + pow(0.0721*abs($a['b'] - $b['b']),2) )); |
Alleen, wanneer ik dat weer visualiseer, in een plaatje, krijg ik hetzelfde plaatje (maar dan met grijswaarden) weer terug in plaats van het gehoopte zwarte-lijnen spectakel. Er is dus blijkbaar iets mis met dit algoritme.
Hoe moet ik dit wél aanpakken? Iemand verstand van dit soort dingen?
[ Voor 12% gewijzigd door Skaah op 01-03-2005 00:10 ]