Skip to main content

Uses OpenCV to find image ' region ' boundaries. Returns set of boundary points for further tweaking as needed.

Project description

ImageBoundaryPointsGeneration takes an image..

.. identifies the " region " in it and returns a list of points bounding the region.

This is meant to be used with a procedural generation project that generates 2D tile maps from provided tile sets within specified regions. It facilitates specifying those regions by uploading pictures in which the specification is clearly present.

Example:

Region picture

The above is a region assembled from pieces I picked up at a fair.

Approximation is done by calling RegionBordersApproximator.approximate:

RegionBordersApproximator.approximate(base_image_data=base_image_data, base_image_width=400, base_image_height=300, min_canny_threshold=100, max_canny_threshold=200, min_segmenting_threshold=70, max_segmenting_threshold=255, contour_thickness=2)
  • base_image_data: image in Base64
  • base_image_width, base_image_height: image width/height
  • min_canny_threshold, max_canny_threshold: Canny edge detection thresholds
  • min_segmenting_threshold, max_segmenting_threshold: Image segmenting thresholds
  • contour_thickness: thickness of lines drawn for region borders

Results are output as

@dataclass(frozen=True)
    class RegionBordersApproximation:
        border_points: dict[uuid4, Point]
        border_segments: tuple[RegionBordersApproximator.RegionBorderSegment]

RegionBorderSegment.point_Id values correspond to border_points keys.

Examples (visual):

Borders highlighted:

Region picture

Borders & boundary points highlit:

Region picture

The idea is that the border points can be more finely, manually tweaked from this initial state. Future iterations will reliably automate that tweaking.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imageboundarypointsgeneration-0.1.0.2.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file imageboundarypointsgeneration-0.1.0.2.tar.gz.

File metadata

File hashes

Hashes for imageboundarypointsgeneration-0.1.0.2.tar.gz
Algorithm Hash digest
SHA256 35aa4f34d2cfd3124fc79fcf804441c8a98d8c5fb010dc35dfd6b41b303a17e4
MD5 54759f8987c1468521ddd9ca1b8680c6
BLAKE2b-256 bebaddaf192b9f261a1d7231c0ec70e75e777d596ca3400c5e9192c02c0f223f

See more details on using hashes here.

File details

Details for the file imageboundarypointsgeneration-0.1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for imageboundarypointsgeneration-0.1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f66c8885c3100c903c798b552947eea527e538fcffecd8053ee0293f5024f33d
MD5 848dca1a6c8283c558524d4feb7034a2
BLAKE2b-256 30f54fdfc6fef615629c25f9be2ad677741fa17f4df11cf5f2b59409d8c0cfbb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page