Context

This four-person team project was built in the third semester of my EPITA program (2024/2025). The goal was a C application that could solve word search grids on its own, starting from nothing more than an image.

The program had to cover the whole chain, from a raw and sometimes poor-quality image through to a rendered, solved grid, bringing together image processing, optical character recognition and a neural network.

Technical approach

The image is first pre-processed: converted to grayscale and then black and white, with orientation correction (both manual and automatic) and noise reduction to cope with common defects such as low contrast, shadows and blur. The program then detects and segments the useful regions: the grid and the word list.

Each extracted letter is passed to a neural network trained with supervised learning, which lets the grid be rebuilt as a character array. A C algorithm then scans that array to locate and box the target words; the result is shown as an image and can be saved.

What I took away

I worked on a full pipeline in C where every stage feeds the next: a weak segmentation or a misread letter carries all the way to the final output. That made me pay close attention to how robust the pre-processing had to be against imperfect images.

The project also gave me hands-on experience with supervised learning for character recognition, and with splitting the work across a team of four.