Projects
Computer vision with OpenCV C++
Because it wanted to sharpen its edges and reduce its contours.
Table of Contents
Source code and Description
Created as part of a thesis, this application was written in C++ with the OpenCV library. The goal of the tool was to evaluate the possibility of transforming hand-sketched UML Class Diagrams into formal PlantUML models, using image processing techniques in the OpenCV library.

The README here contains instructions on how to build the project using CMake and OpenCV as well as an overview on the various computer vision algorithms used to test the above idea.
Results
Precision and Recall evaluation metrics and Classification results
| UML element | Precision | Recall | Qty | TP | FP | FN | ||
|---|---|---|---|---|---|---|---|---|
| Classes | 0.92 | 0.96 | 232 | 196 | 8 | 16 | ||
| Inheritance | 0.92 | 0.92 | 37 | 34 | 3 | 3 | ||
| Association | 0.76 | 0.76 | 139 | 105 | 34 | 34 | ||
| Total | 0.86 | 0.88 | 388 | 335 | 45 | 53 |
TP = true positives, FP = false positives, FN = false negatives.
Thesis
Read the full thesis here
Further development
Develop the tool using OpenCV’s machine learning and computer vision techniques to achieve the goal.