Tråd: PYTHON Finne samling med pixler
View Single Post
Limited edition
Moff's Avatar
Den raskeste måten jeg kan klare å komme opp med er at du prøver å finne alle pixler med én av verdiene du leter etter. Ta den mest "unormale" pixelen du leter etter og gå gjennom hele bildet for å se hvor mange slike pixler som finnes. Sannsynligheten for å finne en syregrønn pixel er vesentlig lavere enn enn sannsynligheten for å finne en svart eller hvit pixel, så det er derfor lurt å velge noe som er litt unormalt.

Når du har funnet alle posisjoner med denne éne pixelen, så kan du begynne med eliminering. Først ser du om pixelen er plassert på en slik måte at det er mulig at det er den du leter etter. For eksempel, hvis pixelen du har funnet er helt til høyre i bildet du leter i, men ikke er helt til høyre i bildet du leter etter, så kan det umulig være en match. Når du har eliminert alle posisjoner som ikke kan være en match, så kan du begynne med pixel-for-pixel-sammenligning til du er 100% sikker på at du har funnet mønsteret ditt.

I korte trekk: Det er raskere å finne ut om mønsteret ikke er der, enn å finne ut om det er der.

Med det sagt så trenger du et ting til, og det er en eller annen form for komprimering av bildet du søker i. Når du søker pixel-for-pixel så vil du få et problem i det øyeblikket bildet du søker i har blitt forstørret eller redusert, rotert, gjort speilvendt eller noen har tuklet med fargene i det. Hvis alle pixler har blitt gjort 0,01% lysere enn de var originalt, hvordan klarer du å fange opp dette? Hvis bildet har blitt lagret som JPG eller et annet "lossy"-format, så vil du typisk få artifacts som påvirker fargene også.

Det er absolutt mulig å løse, men alt er avhengig av hvor nøyaktig du ønsker eller trenger å være.