Path-finding using JPS+ and A* on map created from camera (C++, OpenCV)

In this project, a group of 5 people and me created a software able to take a photo with the camera of a laptop and generate a map that can be used in pathfinding.

During this project I was in charge of the design of the algorithm for recognizing the map.

The project uses the following technologies:

  • OpenCV
  • DirectX
  • C++

The next techniques of image processing were used:

  • Average of images (to eliminate noise)
  • Smoothing by parts (to keep edges but smooth homogeneous parts)
  • Morphological mathematics (to fill holes in binary image)
  • Otsu (to calculate a global threshold)
  • Local Threshold based in Gaussian functions (to calculate a local threshold)
  • Point to point OR operation (to combine the result of both thresholds)
  • Thinning with Zhang and Suen (to make all lines of just one pixel width)
  • Polygonal approximation (improve quality of map)

The project was also able to recognize some figures by mean of neural networks using the output of the polygonal approximation.

Some of the algorithms were developed in C++, others were taken from the OpenCV library.

First Experiment Second Experiment Third Experiment Fourth Experiment