This project is an image processing project that recognizes the shape of note in OSU (a famous music game). The program will automatically move the cursor to relevent positions and click. The score at the top right or display after the clicking determines the validity of this application.

300->perfect, 100->ok

My Contribution:

This was a solo project so I implemented all functions by using C++. I use the shape recognition function in OpenCV to recognize the shape and adjust parameters to give a better recognition.
Also I create a Shape class for different kinds of note in this game to better control the cursor movement.

The basic idea and step of this project

1. GrayScale the raw Screen Capture images from desktop capture.
2. Down-Sampling and Gaussian Blur the image for further detection.
3. Use Math to clamp the detection into what I want because there are many useless and misleading circle in the game. The function in OpenCv about detecting circle is HougeCircle(,,).
4. Create a Shape class for the real circle after filtering.

5. Push the real circle to vector<Shape> list and delay the cursor movement according to the music, record the time when the circle appears. When it is time to click, move the cursor to the center of the last circle in the list and click. Then pop this circle out of the list.
The list iterator will keep running until the program ends.

Video Demo