Hoe kan ik van een foto door een computerprogramma het aantal pixels van een bepaalde kleur laten tellen? Is daar een programma voor?

Voor mijn biologie opdracht wil ik kijken wat de invloed van zout in het water is op eendenkroos. Ik wil het oppervlak dat door het eendenkroos bezet wordt laten meten. maar alles drijft uit elkaar. Dus dacht ik, misschien kan ik een foto maken en een progamma alle groene pixels laten tellen. Kan dit en zo ja welk progamma moet ik gebruiken?

Weet jij het antwoord?

/2500

Dat is nog niet zo'n makkelijke vraag, want: wat is groen? Elke pixel heeft een bepaalde kleurwaarde (laten we uitgaan van de standaard rood-groen-blauw of RGB combinatie), maar er zijn miljoenen kleurcombinaties. Zeg dat je 256 niveaus R, 256 niveaus G en 256 niveaus B hebt, dan heb je dus 256*256*256 = 16.777.216, dus bijna 17 miljoen, mogelijke kleuren. Dit is een zogenaamde 24-bits kleurdiepte. Als je nog een hogere kleurresolutie gebruikt zijn dat zelfs nog veel meer combinaties, maar laten we even van 24-bits uitgaan. In een foto zal vrijwel geen enkele pixel helemaal groen zijn (d.w.z. dat de R en de B waarden 0 zijn), maar zal iets dat er groen uitziet gewoon betekenen dat de G-waarde een eind boven de R- en B-waarden uitsteekt. Stel we nemen de R/G/B combinatie 0/255/0, dat is het allergroenst dat er is. Maar nemen we 127/255/127, dan is het nog steeds groen, maar dan wat wittiger/valiger. Nemen we nou 127/255/0, dus we halen al het blauw eruit maar laten het rood er op halve kracht in, dan wordt het: half rood + vol groen = geel. Nou ja, eerder groengeel-achtig, want er zit nog steeds veel meer groen in dan rood. Et cetera. Dus de vraag gaat zijn: wanneer noem je een kleur groen en wanneer niet. Bottom line: als jij "groene" pixels wilt tellen zul je eerst een binaire definitie moeten vinden van groen, m.a.w. een bepaalde berekening op de R/G/B waarden waaruit per combinatie een antwoord rolt op de vraag "is dit wel of niet 'groen'?" Dit kan geen standaard definitie zijn aangezien je er een heel specifiek doel mee hebt, en het kan ook zo maar nog van de kwaliteit van de foto's afhangen. Als je in plaats van een telling wellicht ook wat hebt aan een soort "score" voor de totale groen-graad van de afbeelding (zodat je die bijvoorbeeld met de score van een andere afbeelding kunt vergelijken om de kijken of de afbeelding groener of minder groen is) wordt het wat makkelijker en zou je bijvoorbeeld de groen-waarden van alle pixels kunnen optellen en dan middelen. Je beste optie is denk ik sowieso om een histografische representatie van het kleurspectrum te laten maken door een stuk bestaande software, zoals "imagemagick". (Schijnt ook voor Windows beschikbaar te zijn, maar onder Ubuntu maakt "convert plaatje.png -format %c histogram:info:-" een prachtige tabel. Zodra je die hebt kun je ermee aan het rekenen slaan zoals je zelf wilt. Succes!

Met photoshop kun je dat doen. Het gaat als volgt: Kies de kleur die je geteld wil worden als voorgrond kleur(kun je met de colorpicker uit je foto halen desgewenst) Ga naar 'select' -> 'color range' en zet 'fuzziness' naar 0, en vink 'localized color clusters' uit en klik OK. Nu kun je in het histogram het aantal pixels die de foto heeft voor die specifieke kleur zien in aantal. Voor het histogram ga je naar 'Window' -> 'Histogram' Let nog wel even op dat het histogram op RGB staat en niet voor een specifiek kanaal. Sorry voor de Engelse begrippen, ik heb Photoshop alleen in het Engels.

Stel zelf een vraag

Ben je op zoek naar het antwoord die ene vraag die je misschien al tijden achtervolgt?

/100