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.2.tar.gz (44.8 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.2-py3-none-any.whl (64.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: panorai-2.0.2.tar.gz
  • Upload date:
  • Size: 44.8 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.2.tar.gz
Algorithm Hash digest
SHA256 c16e663b604199bc13814bcfd4fa0ba1bb7ccb3107c1baa20f6d27ca7f5375f5
MD5 51b2b9915a0674168cf14abc065a8f39
BLAKE2b-256 7bf1df2b77b63e3fa869df874ad72517c3a4a9c22b6c64f9785f2341d80415ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for panorai-2.0.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: panorai-2.0.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fed0b5027a72072008de7df21a629a0540fecb64dfc596075997fd52d2856910
MD5 67261f8b9d625161a19e6f0345630bf0
BLAKE2b-256 9352ed7cd836c04f3cff63f4ceeb5110afd46d490f6856caaee85f7c87ee9222

See more details on using hashes here.

Provenance

The following attestation bundles were made for panorai-2.0.2-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