/Adobe-Gensolve

CurveTopia tackles shape detection and completion, featuring regularization and occlusion tasks. The Regularisation folder contains the regularization task, and the master_folder holds Jupyter notebooks (.ipynb) for Algorithms 1 to 4 on occlusion. The Streamlit app integrates all solutions for interactive use.

Primary LanguageJupyter Notebook

Curvetopia Project README

Find deployed link here: Deployed website

YouTube

Tour to our repository

Overview

Curvetopia is a project focused on identifying, regularizing, and beautifying various types of curves in 2D Euclidean space. The project involves converting line art from a PNG image into a set of connected cubic Bezier curves.

Regularization Task

We have completed the regularization of curves. For detailed information on this process, please refer to the Regularization Task README.

  • Output:

Output using algo1

Output using algo1

Output using algo1

Occlusion Handling

For the occlusion handling task, we have proposed and implemented the following algorithms:

1. Symmetry-Based B-Spline Algorithm

  • Process:

    1. Find the line of symmetry in the image.
    2. Detect corners using Harris corner detection.
    3. Filter the top 15 corners.
    4. Find the corresponding opposite points on the other side of the line of symmetry.
    5. Connect these points using B-Spline curves.
  • Details: For a detailed explanation and implementation of this algorithm, please refer to the Symmetry-Based B-Spline Algorithm README.

2. Generalized Hough Transform

3. Generalized Hough Transform with Multi-Scaling and Multi-Shifting

  • Process:

    • Use the Generalized Hough Transform with predefined template shapes, incorporating multi-scaling and multi-shifting techniques to handle various scales and positions of occluded curves.
  • Details: For a detailed explanation and implementation of this algorithm, please refer to the Generalized Hough Transform with Multi-Scaling and Multi-Shifting README.

4. Shape detection and Completion

  • Process:
    • In this algorith we are iterating over each polyline and if incomplete shape is detected in particular polyline our algo sucessfully completes it.
  • Details: For a detailed explanation and implementation of this algorithm, please refer to the Shape detection and Completion.

Output Using The Above Mentioned Algorithms

  • Output Using Algorithm 1:

Output using algo1

Output using algo1

  • Output Using Algorithm 2:

Output using algo1

Output using algo1

  • Output Using Algorithm 3:

Output using algo1

Output using algo1

  • Output Using Algorithm 4:

Output using algo1

Output using algo1

Contributing

If you would like to contribute to the Curvetopia project, please refer to the Contributing Guidelines.

License

This project is licensed under the MIT License. See the LICENSE file for more details.