Page 117 - Demo
P. 117

TI Python BootCamp Python DIGITALE AFBEELDINGEN GRAFISCH
3. Filters
We bekijken enkele algoritmes i.v.m. image processing die de kleur, contrast en helderheid van een afbeelding/foto veranderen. Voor al deze algoritmes voeren we een transformatie uit op de rgb-waarde van ieder pixel.
3.1. Grayscale
Om een figuur te converteren naar grayscale kunnen we gebruik maken van de intensiteit of de helderheid van de kleur. Een manier om dat te doen is het berekenen van de gemiddelde waarde van rood, groen en blauw:
𝐼 = 𝑅𝑜𝑜𝑑 + 𝐺𝑟𝑜𝑒𝑛 + 𝐵𝑙𝑎𝑢𝑤 3
Deze methode is verre van ideaal daar onze ogen de intensiviteit van rood, groen en blauw niet op dezelfde manier interpreteren. Bijvoorbeeld groen kleurt veel helderder bij maximale intensiteit dan blauw.
Om rekening te houden met onze perceptie van kleuren kennen we als volgt een gewicht toe aan iedere kleur om de intensiteit te bereken:
𝐼 = 0.299 ∙ 𝑅𝑜𝑜𝑑 + 0.587 ∙ 𝐺𝑟𝑜𝑒𝑛 + 0.114 ∙ 𝐵𝑙𝑎𝑢𝑤
We bekijken even het verschil van beide filters voor de onderstaande kleuren:
  from ti_image import * pic=load_image("kleur”) pic.show_image(0,0)
 Gemiddelde intensiteit
for x in range (0,pic.w):
¨¨for y in range (0,pic.h):
¨¨¨¨rgb = pic.get_pixel(x,y)
¨¨¨¨sum = int((rgb[0] + rgb[1] + rgb[2]) / 3) ¨¨¨¨gray = (sum,sum,sum) ¨¨¨¨pic.set_pixel(x,y,gray)
pic.show_image(0,0)
Gewogen intensiteit
for x in range (0,pic.w): ¨¨for y in range (0,pic.h): ¨¨¨¨rgb = pic.get_pixel(x,y) ¨¨¨¨r = rgb[0] * .299 ¨¨¨¨g = rgb[1] * .587 ¨¨¨¨b = rgb[2] * .114 ¨¨¨¨sum = int(r + g + b) ¨¨¨¨gray = (sum,sum,sum) ¨¨¨¨pic.set_pixel(x,y,gray)
pic.show_image(0,0)
  © 2020 T3 Nederland – T3 Vlaanderen
7
www.t3nederland.nl – www.t3vlaanderen.be












































































   115   116   117   118   119