Tammo 80

Home / Weblog / Java / Reizen / Taalverhaspelingen

9 April 2014

SnapSolve

I just released the first version of my first iOS app SnapSolve. It is an app that solves Ruzzle or Boggle: it finds all the words in the 4×4 letter grid. There are already many such apps, but the new thing about SnapSolve is the input: you take a picture of the game, and the letters are automatically detected.

Making this game took me a lot of time, since I had to learn XCode, Objective C, C++, OpenCV and had to come up with an actual algorithm to do the letter detection. In the end I resorted to Python + OpenCV to do prototype the algorithm, so three programming languages were involved. Just as I was submitting the app to Apple for review, a blog appeared about just the thing I was making. I’ll try to illustrate the algorithms I developed in the style of the Megafauna blog. Actually, both our algorithms were inspired by SudokuGrab.

My algorithm consists of

  1. Scale the image to 360×480
  2. Detect if it’s Ruzzle or Boggle
  3. Adaptive threshold
  4. Find all contours
  5. Select contours that have a reasonable size (could be a letter)
  6. From the centers of all these contours, select the 16 that are on a 4×4 rectangular grid
  7. Recognize the score modifiers (only for Ruzzle)
  8. Recognize the letters: for every of the 16 letters:
    1. Draw the letter on a 30×30 image
    2. Overlay it with all (26 x 4 = 104) reference letters, find the letter with the largest overlap
  9. Find all the words using a trie
  10. Sort the words by score

Here are some pictures that show what’s going on:

Step 1: resize image Step 3: adaptive threshold Step 3: adaptive threshold Step 5: select contours Step 6: find grid Step 6: find grid Step 7: recognize modifiers
Step 8: recognize letters

2 June 2010

Mama appelsap

Op verzoek van Erik, die zelf niet zo goed kan Googelen, de “mama appelsap”-top 50:

26 April 2009

Driehonderdduizend

Bijna drie ton
Ik mocht er vorige week getuige van zijn dat de teller van Binus’ Peugeot over de driehonderdduizendgrens sprong (modulo veelvouden van een miljoen, maar ik denk dat de teller nog niet rond was).

25 April 2009

Nette klompen

Geschuurde klompenToen ik gisteren thuiskwam van de voorjaarsbijeenkomst van de Werkgemeenschap Scientific Computing, had Brenda een verrassing voor mij: m’n klompen waren prachtig geschuurd. Dit had ik zelf ook al eens geprobeerd, maar ik kon het geduld er niet voor opbrengen. En deze week had ik het ook niet zelf gekund, vanwege een verhuisblessure (m’n schouder zat er weer naast).

Geschikt

Geschikt

13 April 2009

Paasbult

Paasvuur Valsteeg
Het is weer Pasen. Net als, bijvoorbeeld, in 2004. En net als toen was er weer een paasvuur aan de Valsteeg. De bult is gekeurd door de paasvurencommissie van de Drentse folkloristische vereniging ‘t Aol Volk (vooral niet te verwarren met ‘t Volk van Grada, genoemd naar een oud-leidster van ‘t Aol Volk). De uitslag van de paasvurenschoonheidswedstrijd was bij het plaatsen van dit bericht nog niet bekend, maar ik geef de Valsteeg een goede kans.

Ook het branden ging uitstekend. De foto hiernaast is twee minuten na het aansteken van de bult genomen. Opmerkenswaardig vond ik de kleine tornado’s van rook die van het vuur af woeien. Als er toevallig een meteoroloog meeleest mag die eens uitleggen waar die vandaan komen.

Update: De bult van De Mars (d.w.z. de bult waar ik het hierboven over had) heeft zowel de prijs voor de hoogste bult, met 6,90 meter, als de prijs voor de mooiste bult in de wacht gesleept. Gefeliciteerd!

Paasbult Valsteeg

28 October 2004

College

Vanochtend heb ik voor het eerst een college in biofysica gevolgd. En dat werd wel eens tijd ook, aangezien ik nu al een dik half jaar bezig ben met een project op dat gebied. Het college – gegeven door mijn gastheer – ging over impedance defined flow, en ik weet nu eindelijk waar dat op slaat. Het is een vernieuwend concept op cardiovasculair gebied, en ik ga dan ook met hernieuwd enthousiasme verder met het implementeren van het model waarin dit concept is verwerkt.

Op weg naar ‘university city’ zat ik in het treintje naast een zwarte jongeman, die erg ijverig aan het lezen was. Zo ijverig, dat hij er bij mompelde. Ik keek even over z’n schouder mee, en zag dat hij in het nieuwe testament aan het lezen was. Na een tijdje tikte hij me aan, om zijn enthousiasme over een bepaald stukje te tonen. Het bleek dat hij aan het lezen was in Mattheus 24. De zin waarover hij het wilde hebben was: And pray that your flight may not be in winter or on the Sabbath. Het imponeerde hem behoorlijk dat er in de bijbel al wordt gesproken van een flight, terwijl er toen nog geen vliegtuigen bestonden! (Ik heb een verhaal over nouns en verbs afgestoken, ik denk niet dat dat zijn geloof aantastte.)

Tussen de middag hebben we weer magnifiek geluncht in de faculty club, ik moet daar in Utrecht ook maar eens lid van worden.

Op de terugweg had ik weer een avontuur in ons treintje. Ik had zitten laptoppen, en wilde bij het uitstaappen soepel m’n computer opbergen, maar keerde daarbij per ongeluk mijn tas ondersteboven. Allemaal zooi op de grond dus: losse batterijen, een steen die ik in de Poconos had gevonden, een stapel papieren. En het treintje moest weer verder rijden. Ik heb tegen Bram gezegd dat ik de volgende trein wel terug zou nemen, en ben al opruimend dus station Haverford voorbijgereden. De mensen in de trein waren erg behulpzaam met het bijeenrapen van m’n spullen, dus ik kon in het eerstvolgende station uitstappen, met een ’emergency ticket’ – gekregen van de machinist – voor het stukje terug. Op station Bryn Mawr zat ik op een bankje naast een smoezelig uitziende man, die dan ook dakloos en dronken bleek te zijn. Hij herkende in mij meteen een college student, waarschijnlijk vanwege m’n blouseje. Hijzelf had ook iets met een college: hij overnacht op het baseballterrein van een college hier in de buurt. In ruil voor een dollar heeft hij me – ongevraagd – een paar schuine moppen verteld. Ik suggereerde dat hij voor die dollar in de stad een lekkere hotdog kon kopen, maar besefte daarbij niet dat hij daarvoor natuurlijk ook een treinkaartje nodig had. Maar volgens mij had hij er ook wel een andere besteding voor.

17 August 2004

Aap

Ik heb net ervaren hoe vervelend apen het wel moeten hebben zonder duimen. Gisteren tijdens het basketballen heb ik in een moment van onoplettendheid een bal frontaal op m’n duim gekregen, waardoor die laatste nu vrij zeer doet. En dat is erg lastig tijdens het dichtknopen van m’n bloesje. Vandaar dat apen geen bloesjes dragen.

Mijn excuses voor het gebruik van het incorrecte bloesjes hier, maar het is toch nog beter dan het correcte blousetjes.

Update 2010: Met de nieuwe spelling van 2005 is het blousejes geworden…

14 March 2004

Shoppen met Lotte

Vanochtend heb ik met Lotte eindelijk eens kleren gekocht. (De wortelbroeken waarin in normaalgesproken door het leven ga mogen van haar echt niet meer. Gisteravond heeft Lotte al ‘modepolitie’ gespeeld bij m’n kledingla, er is nu een vuilniszak kleding uit die la verdwenen, vooral spullen die ik toch al niet aan durfde te trekken. Ik bleek nog een overdaad aan blousejes (sic) te hebben, dus die hoefden we vandaag niet meer te halen (bij mij is ‘kleren kopen’ ongeveer synoniem aan ‘nieuw blouseje kopen’, vandaar dat ik er zo’n hoop heb).

We hebben vandaag – zoals dat bij winkelen hoort – behoorlijk veel geslenterd, en hebben ten minste 6 winkels aangedaan. Bij slechts een winkel heb ik wat gekocht, en wel twee broeken. Dat na eerst vijf andere gepast te hebben, ‘voor de statistiek’.

Waarschijnlijk moet ik nu binnenkort weer winkelen, want het is me behoorlijk goed aangepraat dat de broeken die ik de afgelopen 23 jaar van mijn leven gedragen heb ├ęcht niet meer kunnen…

Ik heb ook nog wel wat leuke bovendingen (geen blousejes, dus longsleeves ofzo) gezien, maar daar stonden allemaal rare teksten op zoals Nudie of Big Daddy. Niet iets waarmee ik op m’n rug wil lopen.

13 February 2004

Bouncers

Gisteravond ben ik, zoals aangekondigd, naar de Bouncers geweest. Eerst moest ik nog even in Eindhoven eten, wat ik als verstokte vrijgezel alleen in een pizzeria heb gedaan (met het e-book “Kort
verhaal van een aanmerkelijke luchtreis, en nieuwe planeetontdekking” van Bilderdijk). Ik was precies op tijd – dus rijkelijk te vroeg – bij het concert, er stond maar 20 man voor de deur. Met een van die mensen heb ik even een praatje gemaakt, en mijn vooroordeel over het nerd-gehalte van Einhoven is deels bevestigd: hij probeerde me uit te leggen wat Corba is. Gelukkig begonnen de Bouncers snel te spelen, met lekkere feest-ska. Ik voelde me in m’n blousete trouwens niet helemaal juist gekleed, beter was het geweest een broek met flink wijde pijpen en een groen-rood-gele sweater te dragen, en ook nog dreads te laten zetten. Tot mijn eigen ontzetting heb ik zelfs een poging tot dansen (ritmisch bewegen op muziek) ondernomen. Oh, en ik was natuurlijk helemaal de man toen ik backstage mocht.

Oudere berichten »