Een RBG pixelwaarde omrekenen naar Zwart Wit pixel

  • Jan

    Heeft iemand een idee hoe ik het beste een rbg waarde om kan rekenen naar een zwart wit pixel.

    Als je bijvoorbeeld een rbg waarde van 255 255 255 heb, dan is het logisch dat het een witte pixel is. Andersom is een rbg waarde van 0 0 0 zwart.

    Maar hoe bereken je tussenligende waarden?

    Als tussenstap zou je de grijswaarde kunnen berekenen en als deze tussen de 0 en 127 ligt is het zwart en tussen de 128 en 255 dan wit. Maar hoe kun je de grijswaarde berekenen?

    Alvast bedankt voor het meedenken.

    Jan

  • Rob

    Ik snap niet helemaal wat je bedoeld en ik snap helemaal niet waarom je dat wilt weten.

    Maar toch het volgende: Ik vind RGB ook niet echt logisch opgebouwd. Tis nu eenmaal het verschil tussen beeldscherm en drukpers dat die verschillen noodzakelijk maakt. Voor een betere beheersing van de kleur zet ik mijn documenten tijdelijk om naar CMYK of grayscale. Dan doe ik mijn ding en converteer daarna het bestand weer naar RGB. Moet wel eerlijk zeggen dat het meeste van mijn werk alleen op beeldscherm bekeken wordt (vandaar terug naar RGB). Let wel op dat het resultaat op papier (moet meestal CMYK zijn) vaak anders uitpakt en afhankelijk van je conversiemethode er kleurinfo zal verdwijnen.

  • Jan

    De reden dat ik dit wil weten is het volgende:

    Ik ben bezig met een project. Hierbij moet ik streepjescodes analyzeren vanuit een gescand Tiff bestand. Het Tiff bestand is een 24-bit rbg bestand.

    Nu kan ik (de tool die ik aan het schrijven ben) de rbg waarde van een pixel uitlezen. Maar ik wil dus weten of een pixel donker of licht is. Dus ik vraag mij af hoe je de grijswaarde van een pixel kan berekenen zodat ik dan kan bekijken of een pixel licht of donker is.

    Hier zal wel een standaard algoritme of berekening voor zijn. Maar heb deze zo niet kunnen vinden, dus vandaar mijn vraag

  • Rob

    Is het niet mogelijk het te scannen bestand eerst naar CMYK om te zetten? Daar zijn toch tools voor (batchverwerking)? Dan zou alleen de tool die jij hebt ontwikkeld ook op basis van CMYK moeten kunnen uitlezen.

    Als het een CMYK bestand is, zou je de drempel voor de herkenning van donker en licht op 80% en meer K (=zwart) kunnen zetten.

  • Jan

    Ik ben er inmiddels al uit (hulp van programmeer.prikpagina.nl).

    Met de volgende berekening (0.299*redValue + 0.587*greenValue + 0.114*blueValue) is het mogelijk om de grijswaarde van een pixel te berekenen.

    De grijswaarde uit een CMYK bestand halen was ook mogelijk geweest, maar dan is het dubbel werk (eerst van RBG naar CMYK, en dan van CMYK naar grayscale)

    Evengoed bedankt voor het meedenken en de hulp.

    Jan

  • Rob

    Das nou zo mooi aan interpret!!

    Maar wat ik me nu nog afvraag:

    Waar leg je (of ligt dan) de grens tussen een lichte en een donkere pixel? Rondom het geprinte deel van een barcode zit toch altijd wel enige pixelvervuiling. Dit zie echter pas goed met een loepje.