Tweakers dev challenge writeup - 7

Door Boudewijn op donderdag 1 oktober 2015 00:07 - Reacties (0)
Categorie: Tweakers dev challenge, Views: 1.276

Grappige opgave, jammer dat hij erg simpel is als je eenmaal een plaatje in kunt lezen.
De bovenstaande wei staat helemaal vol met schapen.

De meeste schapen zijn wit, te herkennen aan de RGB waarde #ffffff of #fefefe.

Desondanks zijn er drie schapen die helemaal niet op deze lijken. Op welke locatie in de wei staan deze schapen, op volgorde van links naar rechts? Het assenstelsel begint in de linkerbovenhoek bij 0,0.

Antwoord als set van positieve integers, in het formaat X,Y / X,Y / X,Y (bijvoorbeeld: 10,40 / 15,50 / 70,12).
Het gelinkte plaatje is hier te vinden.

Wat we gaan doen is:

- lees het plaatje in in een list
- scan de list voor afwijkende kleuren, tenzij het de rand betreft

Easy as pie, als je tenminste de Python Imaging Library (PIL, http://www.pythonware.com/products/pil/) of Pillow gebruikt. Met easy_install is dit te installeren op je systeem.

https://github.com/boudew...r/tweakers-challenge/7.py

Python:
1
2
3
4
5
6
7
8
9
10
11
from PIL import Image
im = Image.open("7.jpg")
pixels = im.load()

for y in range(0,im.size[1]):
   for x in range(0,im.size[0]):
       # eerst de randen skippen
       if x not in [0,1,im.size[0]-1, im.size[0]-2] and y not in [0,1,im.size[1]-1, im.size[1]-2]:
           # en nu de pixels selecteren... een beetje wit telt ook als wit.
           if pixels[x,y] not in  [(255,255,255), (254, 254, 254),(253, 253, 253)]:
               print ("X: "+str(x)+" Y:"+str(y) + " " + str(pixels[x,y] ))


Waarom loop ik eerst de Y-as af en dan de X-as? Op deze manier zoek ik van boven naar onder, van links naar rechts. Vind ik persoonlijk fijn.
Langs de randen zitten wat net-niet-wit pixels, vermoedelijk door JPG compressie. Die worden genegeerd, dat zijn de 253 en 254 pixels.


Deze serie gaat verder op:
Boudewijns blog

Volgende: Tweakers dev challenge writeup - 8 10-'15 Tweakers dev challenge writeup - 8
Volgende: Tweakers dev challenge writeup - 6 10-'15 Tweakers dev challenge writeup - 6

Reacties

Er zijn nog geen reacties op deze post


Om te kunnen reageren moet je ingelogd zijn. Via deze link kun je inloggen als je al geregistreerd bent. Indien je nog geen account hebt kun je er hier één aanmaken.