Skip to main content

Panoramic image projection and blending using Gnomonic and other spherical projections.

Project description

PanorAi: Spherical Image Processing & Projection

PanorAi is a framework for working with spherical (equirectangular) images, enabling efficient transformation into Gnomonic projections and back to equirectangular format. It provides flexible samplers and blenders to optimize projection and reconstruction processes.


🚀 Quick Start

Installation

pip install panorai

1️⃣ Load an Equirectangular Image

Convert an image to an EquirectangularImage object.

from panorai import PanoraiData

eq_image = PanoraiData.from_file("path/to/image.png", data_type="equirectangular")

📌 Core Functions

2️⃣ Convert to Gnomonic Projection

Extract a rectilinear (Gnomonic) face from the equirectangular image.

face = eq_image.to_gnomonic(lat=45, lon=90, fov=60)
face.show()

3️⃣ Convert Back to Equirectangular

Reproject a gnomonic face back to equirectangular.

eq_reprojected = face.to_equirectangular(eq_shape=(512, 1024))
eq_reprojected.show()

🛠️ Advanced Usage

4️⃣ Convert to Multiple Gnomonic Faces

Use sampling strategies (e.g., "cube", "fibonacci") to extract multiple faces.

face_set = eq_image.to_gnomonic_face_set(fov=60, sampling_method="cube")
face_set[0].show()  # View first face

5️⃣ Reconstruct Using a Blender

Back-project multiple faces using different blending methods ("closest", "average").

eq_reconstructed = face_set.to_equirectangular(eq_shape=(512, 1024), blender_name="closest")
eq_reconstructed.show()

🔧 Configuring Samplers & Blenders

You can fine-tune sampling & blending strategies using ConfigManager.

Set Custom Sampler

from panorai.pipelines.sampler.config import SamplerConfig

sampler_config = SamplerConfig(n_points=5)

Select Blender

from panorai.pipelines.blender.registry import BlenderRegistry

blender = BlenderRegistry.get("average")  # Options: "closest", "average", etc.

⚡ End-to-End Workflow with PanoraiPipeline

For streamlined processing, use the PanoraiPipeline.

from panorai.pipelines.panorai_pipeline import PanoraiPipeline

pipeline = PanoraiPipeline(sampler_name="cube", blender_name="average")

# Forward projection (Equirectangular → Gnomonic Faces)
faces = pipeline.forward_pass(data=eq_image.data, fov=85, lat=0, lon=0)

# Back-projection (Faces → Equirectangular)
eq_final = pipeline.backward_pass(data=faces, eq_shape=(512, 1024))
eq_final.show()

📌 Summary

Feature Function
Load Image PanoraiData.from_file()
Convert to Gnomonic to_gnomonic(lat, lon, fov)
Convert to Face Set to_gnomonic_face_set(fov, sampling_method)
Convert Back to EQ to_equirectangular(eq_shape, blender_name)
Use Samplers & Blenders ConfigManager, BlenderRegistry
Pipeline Processing PanoraiPipeline.forward_pass(), backward_pass()

📚 Next Steps

  • Experiment with different samplers ("cube", "fibonacci").
  • Try blenders ("closest", "average") for optimal reconstructions.
  • Use Torch tensors for deep learning integration.

🔗 PanorAi Documentation (Link to full API reference)


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

panorai-2.0.5.tar.gz (44.7 kB view details)

Uploaded Source

Built Distribution

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

panorai-2.0.5-py3-none-any.whl (64.5 kB view details)

Uploaded Python 3

File details

Details for the file panorai-2.0.5.tar.gz.

File metadata

  • Download URL: panorai-2.0.5.tar.gz
  • Upload date:
  • Size: 44.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for panorai-2.0.5.tar.gz
Algorithm Hash digest
SHA256 78f2d2effdcb5de9dcbbac7afc3b0dae5211a7addcc4849a1cd97983a3cf194e
MD5 6f1536a39b9ca517cad30bc5924b9ca9
BLAKE2b-256 828d1ddde86e385b7abe52e745ae37c6eefe909cb153f6f27f27ee1bfed816f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for panorai-2.0.5.tar.gz:

Publisher: python-publish.yml on RobinsonGarcia/PanorAi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file panorai-2.0.5-py3-none-any.whl.

File metadata

  • Download URL: panorai-2.0.5-py3-none-any.whl
  • Upload date:
  • Size: 64.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for panorai-2.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e63f4e38cb43d0bd24ee73a48f2235945d9cad0b825e1b68db43fdf33c25fb4e
MD5 8d32309eccf061546c080a584f895acd
BLAKE2b-256 928876193a92f4a3e11c3061472f7cd5c69c844dbfd467f4f2b3b76d039af124

See more details on using hashes here.

Provenance

The following attestation bundles were made for panorai-2.0.5-py3-none-any.whl:

Publisher: python-publish.yml on RobinsonGarcia/PanorAi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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