Dagboek
Op deze pagina staan een aantal zijpaden die we hebben bewandeld op weg naar ons eindresultaat. De grootste problemen die we zijn tegengekomen hebben we opgenomen in de hoofdstukken 'De opstelling' en 'Het programma'. Hier vindt u een aantal kleinere, doch in potentie zeer frustrerende problemen.Maandag 27 juni
Brainstormen over de taak: de verhouding 40-20-40 wat betreft Ontwerpen-Implementeren-Testen blijkt later in de week een gouden greep te zijn geweest. Het zou hebben geholpen als we ons er ook daadwerkelijk aan zouden hebben gehouden. Verder: aanvang met het maken van een website (labjournaal) en logboek. De grootste problemen lagen nog voor de boeg.
Dinsdag 28 juni
Begonnen met het bouwen van een opstelling. Begonnen met een glazen schaakbord en glazen stukken, aangezien er niets anders voor handen was. Glas blijkt niet het ideale materiaal in Computer Vision taken vanwege de grote reflectie. Later overgestapt op een houten bord. Glazen stukken echter behouden, maar gemarkeerd met witte stickers om het contrast met de ondergrond te vergroten. Vooral de grootte van de stukken was een reden om ze te behouden: de vakjes van het bord waren dusdanig groot dat de nogal kleine stukken er volledig binnen vielen vanuit de hoek waarin we fotograferen. Het aansturen van de camera met MatLab bleek een koud kunstje.
Wat betreft de implementatie: de eerste code geschreven om de foto's voor en na de zet van elkaar af te trekken. Aanvang met het maken van een blob-detectie-algoritme, gebaseerd op onze eerdere versie van het A*-algoritme. MatLab blijkt niet de ideale omgeving om te werken met een iets ingewikkeldere datastructuur zoals een array van pixel-coordinaten (blob-detectie).
Woensdag 29 juni
Tot de conclusie gekomen dat onze opstelling toch niet ideaal was. We fotografeerden het bord vanuit een bepaalde hoek, waardoor de toppen van de stukken (de markering) buiten het vakje valt door het perspectief van waaruit je kijkt. Als je van recht bovenaf kijkt zie je het stuk altijd binnen het vakje staan. Dit vergemakkelijkt de taak van het koppelen van pixel-coordinaten aan schaakbord-coordinaten aanzienlijk.
Donderdag 30 juni
De camera doet het niet. Ons wordt verteld dat het een oude webcam is die zo onderhand wel eens kuren zou gaan vertonen. Vrijdag gebeurt hetzelfde. Na veel gepruts blijkt het opnieuw installeren van de drivers soelaas te bieden. Geprobeerd uit te vinden hoe we van een text-file kunnen lezen en naar een text-file kunnen schrijven vanuit MatLab. Leve de hulp-functie! Eindelijk een programma waarin wel iets te vinden is in de help.
Nog een paar functies afgemaakt. Vooral het bepalen van de grenswaarde bij het omzetten van een grijswaarde-afbeelding naar een zwart/wit afbeelding vormt een probleem. Deze grenswaarde geeft aan welke grijswaarde naar zwart (0) worden omgezet (als de waarde onder de grens valt) en welke naar wit (1). Als de belichting per foto verschilt is deze grenswaarde telkens anders. We zijn op zoek naar een grenswaarde die altijd een min of meer optimaal resultaat oplevert. Is er te veel belichting en de grenswaarde te laag dan bevat ons zwart/wit verschilbeeld veel vlekken vanwege reflectie. Is er weinig belichting en de grenswaarde te hoog dan worden zelfs onze eigen blobs ge-elimineerd. Oplossing: definieer een waarde die aangeeft hoeveel witte pixels je ongeveer in je resultaatbeeld wilt hebben (plus/min een bepaald percentage). Itereer de grenswaarde totdat je binnen dit gebied valt. In het geval dat je beeld te licht was en er dus veel reflectie aanwezig was, elimineert deze methode als eerste de reflectie. Onze witte markers hebben namelijk een hogere grijswaarde dan de reflectie. In het geval dat er te weinig belichting was worden onze blobs hierdoor zelfs versterkt. Geniaal.
Vrijdag 31 juni
De laatste hand leggen aan het labjournaal. Presenteren. Laten we hopen dat alles blijft werken.
