All projects

Technical Report · ML & Computer Vision

Key Model Generator - Image Contours to OBJ

Computer-vision utility that detects contours in an input image, previews/lists contour points and exports the detected geometry as an OBJ model.

AUTHOR  Gaurav Verma CATEGORY  ML & Computer Vision SOURCE  https://github.com/gaurav-321/key_model_generator_2 DATE  Nov 2022 STATUS  published
View Source Python OpenCV CV NumPy OBJ

Abstract

A Python utility that takes a high-contrast key-style image, runs OpenCV contour detection, and writes the resulting 2D geometry as an OBJ file for 3D modeling tools. The labeled contour preview is the main debugging aid, letting you verify detection before committing to an export.

1. What This Is

The project bridges computer vision and 3D graphics tooling. It loads a source image, detects the dominant contour with OpenCV, converts the pixel-space coordinates into an ordered vertex list, and serialises the result as a standard OBJ file. A labeled preview renders the detected points on the source image so the detection can be inspected visually before the model is written to disk.

2. How It Works

The pipeline is linear: image in, OBJ out. OpenCV handles loading, preprocessing, and contour detection; NumPy handles the coordinate arrays; a small writer emits the OBJ text file.

# Stage Input Tool Output
01 Load & preprocess Source image file OpenCV Prepared array
02 Contour detection Prepared array OpenCV Contour point set
03 Coordinate ordering Contour points NumPy Ordered vertex list
04 Labeled preview Vertices + source image OpenCV Annotated image
05 OBJ export Ordered vertices Python file I/O .obj file

3. Constraints

  • High-contrast source assumption

    Contour detection is tuned for key-style images with a single dominant shape. Noisy or low-contrast inputs will produce fragmented or missing contours.

  • Flat 2D geometry only

    The OBJ output is a planar vertex ring. There is no extrusion, thickness, or surface-normal generation, so the model is a flat outline rather than a solid part.

  • No multi-contour handling

    The pipeline targets a single significant contour. Images with multiple shapes or internal holes are not decomposed or merged.

  • No output validation

    The OBJ file is written without a round-trip parse or vertex-count sanity check, so a malformed contour can silently produce a broken model.

4. Next

  1. a. Add Douglas-Peucker simplification to reduce vertex count before export.
  2. b. Support multiple contours and internal holes (key slots, cutouts).
  3. c. Add a simple extrusion step so the OBJ contains faces and normals, not just a vertex ring.

— end of report —