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.3.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.3.tar.gz.

File metadata

File hashes

Hashes for imageboundarypointsgeneration-0.1.0.2.3.tar.gz
Algorithm Hash digest
SHA256 a25c63234430ec59254c53451d63c0cc60a96e4fc2334f73e813e5f5fb21ec13
MD5 6dcab5814d681f94856b20357a0ff111
BLAKE2b-256 9a98cc02a3da4c4d98b12c8c23a0e08fd1cdfd4643996b0e7a28496d57aa4224

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for imageboundarypointsgeneration-0.1.0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b1d9584d57061186b8151a40cce9b5ff1d7ec6ad8b541c43c0844c262c9cad4a
MD5 aa84d6c3b60af60884e652d672c78f0a
BLAKE2b-256 6c9968b42cbb4401b398ead408be50a6311399a4c978d315f71379f9c8361ddf

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