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.4.tar.gz (7.2 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.4.tar.gz.

File metadata

File hashes

Hashes for imageboundarypointsgeneration-0.1.0.2.4.tar.gz
Algorithm Hash digest
SHA256 4c8144e53b7e20f5cd218628eb4bf8ec8f5f8e43f62f4f18223407dc6d35e1f2
MD5 829a100e70c81b7c090607800ec1c7e2
BLAKE2b-256 b2f4fbce5791ca10dd8d32c2c61399a25efe5052bd26c6516647c216ca9d6d5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for imageboundarypointsgeneration-0.1.0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f1f2fd00c0591449059794578b1cb1742c8f6977f38c8c398cbda0a04fd2ba82
MD5 103bb0da1d6284b9beb2853b5e9f609a
BLAKE2b-256 cb3962c3f786cdd24617cc12f7d470c317e7771672b7a49bd0d8f85bed870ddd

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