In this project, we used this version of Boggle: http://www.amazon.com/Hasbro-A8168-Scrabble-Boggle-Game/dp/B00IFWSNFY/
MATLAB
To run this program, simply use [NewBoard, Letters] = boggleCV(filename) where filename is the path to the Boggle Board image.
For example, use [NewBoard, Letters] = boggleCV('./LetImg/tt.jpg') to run Boglr on one of the sample images.
Then use imagesc(NewBoard) to see the detected board.
board = generateBoggleBoardImage(length) - Generates a black and white image of a 4x4 Boggle board, with a black frame and white tiles. Used as template in detection of Boggle board in image.
[subimage, theCorr, yOffset, xOffset] = findSubimageHighestCorr(im, windowSize) - Finds the correlation and position of detected Boggle board of side length windowSize, returned as subimage.
[theBoard, windowSize, xOffset, yOffset] = detectBoggleBoardPyramid(im) - Given an image, this function uses a matched filter to detect the most likely position of the Boggle board within the image, and outputs the detection window as theBoard with side length windowSize.
[newBoard, theLetters] = detectLetters(board) - Given a detected "board" (output of detectBoggleBoardPyramid), this function appropriately grids up the board into letter tiles, and uses a matched filter on each one to detect the most likely character. newBoard is a processed version of board and theLetters is a 4x4 cell array of detected letters.
[newBoard, theLetters] = boggleCV(filename) - Runs the detection on the file at path filename.
[newBoard] = removePadding(board) - Removes the dark padding at the edges of an image. Used in cleaning the detected board image as well as the detected letter tiles.
Letters.mat - Contains a cell array letters which contains matrices that represent images of each character rotated 4 times. Used in matched filter detection of each letter tile.
For detailed information, please see report.pdf.