Pagina 1 van 1

Photoshop, een kijkje in de keuken.

Geplaatst: vr feb 16 2007 1:48 pm
door ThunderNet
Dit is een artikel wat ik een poos geleden al geschreven had, en op een ander forum geplaatst heb. Ik hoop dat sommigen van jullie het intressant vinden. Het is wel voor gevorderden :)

Het eerste gedeelte van deze tutorial gaat over zogenaamde Pixelfilters. Dit zijn filters die informatie uit 1 pixel nodig hebben, en in principe geen informatie uit andere pixels nodig hebben.
Deze filters zijn betrekkelijk makkelijk te begrijpen.
Wel wordt er van uit gegaan dat er enige kennis van RGB aanwezig is. In al deze voorbeelden gebruiken we RGB/8 maar je kunt ze ook toepassen in RGB/16, echter zullen dan de waardes er anders uitzien.

Inhoud:
  • Grayscale
    Negatief
    Brightness
    Color balance
    Contrast





Pixelfilter: Grayscale
Een redelijk simpele bewerking is het omzetten van een kleurenfoto naar een zwart/wit foto.
Een zwart/wit foto binnen het RGB/8 spectrum heeft op elk kanaal de zelfde waardes.
Bijvoorbeeld

(0,0,0) = zwart
(22,22,22) = donker grijs
(120,120,120) = grijs
(180,180,180) = lichtgrijs
(255,255,255) = wit

Het omzetten van een kleur ( RGB/8 ) naar een grijswaarde gebeurd door het gemiddelde te nemen van de drie kanalen en dit gemiddelde te zetten in alle kanalen.
Dit gebeurd door de volgende formule te gebruiken: Grijswaarde = (R + G + B ) / 3;
Hierna wordt de grijswaarde in alle kanalen gezet, dus R = Grijswaarde; G = Grijswaarde; B = Grijswaarde

Als we als voorbeeld nemen een pixel met de kleuren (221,176,82) ( RGB/8 ) krijgen we de volgende ingevulde formule:

Code: Selecteer alles

Grijswaarde = (221 + 176 + 82) / 3; Grijswaarde = 160
R = 160; G = 160; B = 160;
Nemen we een pixel met de kleuren (78,105,77) (RGB/8) krijgen we de volgende uitwerking:

Code: Selecteer alles

Grijswaarde = (78 + 105 + 77) / 3; Grijswaarde = 87
R = 87; G = 87; B = 87;
[small]In photoshop: Image -> mode -> Grayscale[/small]
Afbeelding
Afbeelding


Bij het omzetten van een foto naar grijswaarden wordt ook vaak de Channelmixer gebruikt. Dit proces is dan een combinatie van 2 filters, namelijk Color Balance filter, en Grayscale filter.
Eerst wordt de pixel door de color balance filter gehaald, en daarna omgezet naar een grijswaarde.
De color balance filter wordt verderop in deze FAQ uitgelegd.




Pixelfilter: Negatief
Het filter om een negatief van de foto te maken is erg simpel.
In elk kanaal wordt de waarde van de maximale waarde afgetrokken.
De formule is dus X = 255- X; (waar X een kleurkanaal is (dus R, G of B )

Als we het RGB spectrum als een kubus afbeelden:
Afbeelding
dan is de negatieve waarde van een bepaalde kleur aan het tegenovergestelde punt van de kubus.

Als we bijvoorbeeld de volgende waardes hebben: (255,0,128) ( RGB/8 )

Code: Selecteer alles

R = 255 - R; R = 255 - 255; R = 0
G = 255 - G; G = 255 - 0;   G = 255
B = 255 - B; B = 255 - 128; B = 127
het negatief van (255,0,128) is dus (0,255,127) ( RGB/8 )

[small]In photoshop: Image -> Adjustment -> Invert (Ctrl + i)[/small]
Afbeelding
Afbeelding





Pixelfilter: Brightness
Om een foto lichter of donkerder te maken, hebben we het brightness filter.
Dit filter vermenigvuldig alle RGB waardes met een waarde.
Deze waarde kunnen we bepalen dmv een bepaald percentage in hoeverre we een pixel lichter of donkerder willen maken.

Het percentage kan lopen van -100% tot 100%
De formule ziet er als volgt uit: X = X + percentage * (255 - X); om het omgekeerde te doen (dus een foto donkerder te maken).
Gebruiken we de volgende formule: X = X - (percentage * X);

Een gekozen percentage van 100 betekend dat alle waardes het lichtst mogelijk worden (alles krijgt dan waarde 255). Bij een percentage van -100 krijgt alles de waarde 0.

Stel we willen een foto 20% lichter maken. het percentage is dan +0.20. Als we een waarde hebben van (52,66,23)( RGB/8 ) krijgen we de volgende ingevulde formule:

Code: Selecteer alles

R = 52 + 0.20 * (255 - 52); R = 93
G = 66 + 0,20 * (255 - 66); G = 104
B = 23 + 0,20 * (255 - 23); B = 69
Willen we een bepaalde pixel 60% donkerder maken, krijgen we dus de 2e formule die we moeten invullen. We gebruiken dezelfde kleur dus: (52,66,23)( RGB/8 ).

Code: Selecteer alles

R = (1 - 0.60) * 52; R = 21
G = (1 - 0.60) * 66; G = 26
B = (1 - 0.60) * 23; B = 9
[small]In photoshop: Image -> Adjustment -> Brightness/Contrast[/small]

Afbeelding
Afbeelding





Pixelfilter: Color balance
Kleurbalans is in principe dezelfde bewerking als Brightness, echter hebben we nu per kanaal een andere factor.
De algemene formule hiervan is R = (1 + r_factor) * R; G = (1+ g_factor) * G; B = (1+ b_factor) * B;
Stel we nemen (150,113,052) ( RGB/8 ) als waarde en als factoren(percentage) r_factor = 0.50; g_factor = -0.50; en b_factor = -0.02;

Als het je opvalt, kun je zien dat de formule die we net aangaven nu niet klopt, omdat deze niet goed kan omgaan met negatieve factors.
Dus we krijgen bij een positieve factor: R = (1 + r_factor) * R; bij een factor van 0 of kleiner dan 0 krijgen we: R = R + r_factor * (255 - R);
(255 is hier max. waarde in 8 bits kleurenpalette)

Code: Selecteer alles

r_factor = 50; g_factor = -50; b_factor = -0.02;
R = ( 1 + r_factor) * R; ingevuld: R = ( 1 + 0.50) * 150; R = 225
G = G + g_factor * (255 - G); ingevuld: G = 113 + -0.50 * (255 - 113); G = 42
B = B + b_factor * (255 - B); ingevuld: B = 052 + -0.02 * (255 - 052); B = 48
Uiteindelijk krijgen we voor deze bewerking op deze pixel dus een waarde van (225,42,48) ( RGB/8 )
[small]In photoshop: Image -> Adjustments -> Channel Mixer[/small]

Afbeelding
Afbeelding


Colorbalance wordt ook vaak gebruikt bij de zwart/wit conversie van een foto. Omdat je met colorbalance dan net het tikkie extra contrast kunt geven aan een foto. In principe wordt er dan na de berekening van color balance, de grayscale conversie gedaan.

[small]In photoshop: Image -> Adjustments -> Channel Mixer (en monochroom aanvinken)[/small]

Afbeelding
Afbeelding

Wat zoals je ziet, je zwart/wit foto een compleet andere indruk kan laten geven.





Pixelfilter: Contrast
Contrast is de onderscheiding tussen 2 of meer kleuren.
Zo is er veel contrast tussen wit en zwart, want ze zitten elk aan het complete uiteinde van het kleurenspectrum. En tussen oranje en geel zit minder contrast, omdat ze dichterbij elkaar zitten in het kleurenspectrum.

Als we het meer onderscheid willen maken tussen 2 kleuren, kunnen we hier een bepaalde bewerking voor uitvoeren. We verhogen dan het contrast.
Waar het dus op neer komt, is dat je kleuren verder uitelkaar trekt. Een lichte tint maak je lichter, een donkere tint donkerder.
Verminder je het contrast, komen de kleuren dichterbij elkaar naar het midden van het spectrum. Vergroot je het contrast gaan ze verder naar de uiteinden in het spectrum.


Afbeelding
Afbeelding

[small]Een foto, en de weergave van het histogram van die foto. Zoals je kunt zien, zijn alle kleuren verdeeld over het hele spectrum[/small]

Eerst moeten we het midden van het spectrum berekenen, dit is niet gewoon 127 zoals je misschien verwacht. Maar het is het midden van het gebruikte spectrum in een foto.
r_mid = (r_Max + r_Min) / 2
g_mid = (g_Max + g_Min) / 2
b_mid = (b_Max + b_Min) / 2

r_scale = factor / (r_Max - r_Min)
g_scale = factor / (g_Max - g_Min)
b_scale = factor / (b_Max - b_Min)

x_diff = XR - x_mid) * x_scale
X = 127 + x_diff

Als hier uit komt dat R <0> 255 dan wordt het 255 (lichtst mogelijke waarde)
Dit geld ook voor Groen en Blauw.


Contrast kunnen we alleen niet uitleggen door gewoon een RGB/8 waarde te pakken van een willekeurige pixel, omdat we de uiterste waarden gebruikt in alle pixels moeten weten.
Stel dus dat de uiterste waarden in een bepaalde foto de volgende zijn:
r_Max = 240; r_Min = 23
g_Max = 251; r_Min = 40
b_Max = 220; r_Min = 50

We gaan nu eerst r_mid, g_mid en b_mid berekenen.

Code: Selecteer alles

r_mid = (r_Max + r_Min) / 2; ingevuld: r_mid = (240 + 23) / 2; r_mid = 132;
g_mid = (g_Max + g_Min) / 2; ingevuld: g_mid = (251 + 40) / 2; g_mid = 146;
b_mid = (b_Max + b_Min) / 2; ingevuld: b_mid = (220 + 50) / 2; b_mid = 135;
We hebben dus het midden van het spectrum berekend.
r_mid = 132; g_mid = 146; b_mid = 135

Het volgende wat we moeten berekenen is de schaal. Hiervoor hebben we een factor nodig, Als voorbeeld nemen we een factor waarde van 900, dit trekt het Contrast een flink stuk omhoog, en alle kleuren uit elkaar.

Code: Selecteer alles

r_scale = factor / (r_Max - r_Min); ingevuld: r_scale = 900 / (240 - 23); r_scale = 4.15;
g_scale = factor / (g_Max - g_Min); ingevuld: g_scale = 900 / (251 - 40); g_scale = 4.27;
b_scale = factor / (b_Max - b_Min); ingevuld: b_scale = 900 / (220 - 50); b_scale = 5.29;
De scales zijn nu dus berekend.
r_scale = 4.15; g_scale = 4.27; b_scale = 5.29;

Vanaf nu gaan we het per pixel berekenen. De hiervoorgaande berekeningen waren voor over de hele foto, vanaf nu is het dus weer een echte Pixel-filter.
Als voorbeeld pakken we een pixel met de volgende kleurwaardes: (120, 88, 110) ( RGB/8 )

Code: Selecteer alles

r_diff = (R - r_mid) * r_scale; ingevuld: r_diff = (120 - 132) * 4.15; r_diff = -50;
g_diff = (G - g_mid) * g_scale; ingevuld: g_diff = (88  - 146) * 4.27; g_diff = -235;
b_diff = (B - b_mid) * b_scale; ingevuld: b_diff = (110 - 135) * 5.29; b_diff = -132;
r_diff = -50; g_diff = -235; b_diff = -132;


volgende stap is X = 127 + x_diff te berekenen. Vergeet niet de regel van als een waarde <0> 255 is dat deze 255 wordt.

Code: Selecteer alles

R = 127 + r_diff; ingevuld: R = 127 + -50;  R = 77;
G = 127 + g_diff; ingevuld: G = 127 + -235; G = -108; -> G = 0;
B = 127 + b_diff; ingevuld: B = 127 + -132; B = -5; -> B = 0;
Uiteindelijk wordt de kleurwaarde van deze pixel dus: (77,0,0) (RGB/8)

Wat is er nu zonet gebeurd? We hadden een pixel, welke waardes lager waren dan de gemiddelde waardes uit het spectrum (r_mid, g_mid en b_mid) dus de kleuren zouden verder naar beneden getrokken worden.

[small]In photoshop: Image -> Adjustments -> Brightness/Contrast[/small]

Afbeelding
Afbeelding


Wat nu als we een pixel hebben, met kleurwaardes die hoger zijn dan het gemiddelde van het gebruikte spectrum? Dan zouden de kleuren een hogere waarde moeten krijgen dan ze hadden.
Om dit nu te testen, nemen we een pixel met volgende waardes: (160,155,210) ( RGB/8 )
De waardes zijn boven de gemiddelde waarden die we berekend hadden (r_mid, g_mid en b_mid) maar lager dan de hoogste waardes binnen het spectrum (r_max, g_max en b_max).

Code: Selecteer alles

r_diff = (R - r_mid) * r_scale; ingevuld: r_diff = (160 - 132) * 4.15; r_diff = 116;
g_diff = (G - g_mid) * g_scale; ingevuld: g_diff = (155 - 146) * 4.27; g_diff = 38;
b_diff = (B - b_mid) * b_scale; ingevuld: b_diff = (210 - 135) * 5.29; b_diff = 397;
r_diff = 116; g_diff = 38; b_diff = 397;

Volgende stap is weer de uiteindelijke waarde berekenen

Code: Selecteer alles

R = 127 + r_diff; ingevuld: R = 127 + 116;  R = 243;
G = 127 + g_diff; ingevuld: G = 127 + 38; G = 165; -> G = 0;
B = 127 + b_diff; ingevuld: B = 127 + 397; B = 524; -> B = 255;
Zoals je kunt zien, is de pixel met lichtere kleuren, lichter geworden, en de pixel met donkere kleuren donkerder geworden. Oftewel de kleuren zijn van het centrum uitgetrokken van elkaar af.
[small]In photoshop: Image -> Adjustments -> Brightness/Contrast[/small]

Afbeelding
Afbeelding

Geplaatst: vr feb 16 2007 1:51 pm
door Onne-Floris Broekema
:shock: :shock: :shock:
...wauw...
...ik kom hier later op terug :oops:

Photoshop

Geplaatst: vr feb 16 2007 1:55 pm
door George Fennes
ThunderNet,

Bedankt voor je uitleg, je hebt er wel een heel werk van gemaakt.

Hier hebben we wat aan.

Als je het goed vindt, ga ik er eerst even een studie van maken daar ik nog bijna niets tot helemaal niets met Photoshop doe.

Maar het ziet er bijzonder informatief en leerzaam uit.

Bedankt voor je bijdrage.

Groetjes George :D

Geplaatst: vr feb 16 2007 1:56 pm
door alfredo
Hier word ik dus gek van... ik wilde me er net toe zetten om meer van photoshop te gaan begrijpen!!

Dan maar gratis Picasa... :cry:

Geplaatst: vr feb 16 2007 2:01 pm
door ThunderNet
alfredo schreef:Hier word ik dus gek van... ik wilde me er net toe zetten om meer van photoshop te gaan begrijpen!!

Dan maar gratis Picasa... :cry:
Haha, dit hoef je zelf gelukkig in photoshop niet te doen. Dit zijn de technieken die photoshop gebruikt. Dit is wat er dus gebeurd als jij op een knop drukt in photoshop :)

Geplaatst: vr feb 16 2007 3:21 pm
door The-Boss
alfredo schreef:Hier word ik dus gek van... ik wilde me er net toe zetten om meer van photoshop te gaan begrijpen!!

Dan maar gratis Picasa... :cry:
Zou ik niet doen, dacht daar vroeger ook zo over. Koop een boek over PS en ga daarna stukje voor stukje aan de gang.
Ik heb ook mijn oude programma er nog op staan (Paint Shop Pro). Als ik iets echt snel wil doen doe ik het daarmee.
Daar naast probeer ik steeds weer iets te doen in PS. Het probleem is dat je vaak te snel, te complexe dingen wil doen, probeer daarom eerst de normale zaken van PS onder de knie te krijgen.
Dat gaat best wel vlug, en dan steeds een stapje verder. Ook belangrijk is als het niet lukt om ook echt opnieuw te beginnen met dezelfde foto. Dus niet met een reeds gedeeltelijk bewerkte foto.

Groetjes Pierre.

Geplaatst: vr feb 16 2007 4:33 pm
door alfredo
Ik heb het dikke boek CS2 van Kelby en het boek van Dre de Man....moet er toch maar eens mee aan de slag... :oops:

Geplaatst: vr feb 16 2007 5:32 pm
door Rogier
Met Kelby ga je een heel eind komen.