Skip to content

This project focuses on curve analysis, including regularizing curves, exploring symmetry, and completing incomplete shapes. It employs techniques like curve fitting, Bézier curve fitting, and symmetry detection to identify regular geometric shapes, detect reflection symmetry in closed curves, and algorithmically fill gaps in occluded shapes.

Notifications You must be signed in to change notification settings

Demon-2-Angel/Adobe-Hackathon-Regularization-of-doodles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Curve Regularization, Symmetry Exploration, and Completion of Doodles

Objective

This project focuses on three key objectives:

  1. Regularizing Curves: Identify and distinguish regular shapes (like lines, circles, ellipses, etc.) from irregular curves.
  2. Exploring Symmetry in Curves: Identify reflection symmetry in closed shapes and fit Bézier curves to symmetrical points.
  3. Completing Incomplete Curves: Develop algorithms to complete curves with missing parts, handling varying levels of shape occlusion.

Approach

1. Regularizing Curves

Objective

Identify and distinguish regular shapes from irregular curves.

Approach

  • Curve Fitting:
    • Use curve fitting techniques (e.g., least squares) to approximate curves as simple geometric shapes.
    • For straight lines, use linear regression.
    • For circles and ellipses, use parametric equations to fit the curves.
    • For polygons, detect vertices and analyze angles and lengths to regularize.
  • Shape Matching:
    • Compare extracted features (e.g., radius for circles, aspect ratio for ellipses) with predefined criteria for each shape type.
    • Use algorithms like the Hough Transform for detecting straight lines and circles.
  • Validation:
    • Test the algorithm on various images to check for accuracy in identifying regular shapes.

2. Exploring Symmetry in Curves

Objective

Identify reflection symmetry in closed shapes and fit Bézier curves to symmetrical points.

Approach

  • Symmetry Detection:
    • Identify the axis of symmetry by analyzing pairs of points on the curve and checking for equidistance from a potential axis.
    • Use reflection and rotational symmetry techniques.
  • Point Transformation:
    • Convert curves into a set of points and analyze their symmetry.
    • For reflection symmetry, check if pairs of points exist across a line of symmetry.
  • Bézier Curve Fitting:
    • Use Bézier curve fitting techniques to represent symmetric points.
    • Fit identical Bézier curves to each pair of symmetric points and ensure the curve is smooth and continuous.

3. Completing Incomplete Curves

Objective

Develop algorithms to complete curves with missing parts, handling varying levels of shape occlusion.

Approach

  • Curve Continuity:
    • Analyze the continuity of the curve by detecting edges and contours.
    • Use spline interpolation or Bézier curve fitting to extend or connect the incomplete sections.
  • Occlusion Handling:
    • For fully contained shapes, use extrapolation to predict the missing part.
    • For partially contained shapes, use geometric continuity (G1 or G2 continuity) to smoothly connect the curve.
    • For disconnected shapes, use pattern recognition or machine learning to infer the missing segments.
  • Testing and Validation:
    • Test on various occluded images, starting from simple gaps to more complex occlusions.
    • Validate the algorithm's ability to naturally complete the curve without abrupt transitions.

Tools and Techniques

  • Programming Languages: Python with libraries like OpenCV, NumPy, and SciPy.
  • Mathematical Techniques: Curve fitting, interpolation, regression analysis.
  • Algorithms: Hough Transform, Bézier curve fitting, symmetry detection algorithms.

Next Steps

  • Break down each task into smaller, manageable components.
  • Start by developing simple scripts or functions for each sub-task.
  • Test each function with sample data before integrating them into a full algorithm.
  • Document your progress and results to refine your approach.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

This project focuses on curve analysis, including regularizing curves, exploring symmetry, and completing incomplete shapes. It employs techniques like curve fitting, Bézier curve fitting, and symmetry detection to identify regular geometric shapes, detect reflection symmetry in closed curves, and algorithmically fill gaps in occluded shapes.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published