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.1.tar.gz (5.9 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.1.tar.gz.

File metadata

File hashes

Hashes for imageboundarypointsgeneration-0.1.0.1.tar.gz
Algorithm Hash digest
SHA256 f6e3b1f179e8a2a42d95ee8c22b118b78b38ccd2f2071a25e17639e82fb1a02f
MD5 9a764953c5a04b9e522b521b62940eff
BLAKE2b-256 1ea6eec0f3da93b0cb8e0e385a3f9a91d2d7d8946bb4a8a4874f824e902172aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for imageboundarypointsgeneration-0.1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 898c13d5ced9195164d093345748525c2d7e53acaea7ce9262b3cbdedccf544c
MD5 a245909e0bf7a2ac4f2bc4a038e2deb3
BLAKE2b-256 d1dd2131732cd1da893562ad82d8e0c972d7c27f7a53a4f57469a0522321b1ab

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