Przejdź do treści
Biblioteka skilli
Programowanie · Budowanie i kod

pywayne-cv-camera-model

/pywayne-cv-camera-model

Ładuje modele kamer z plików YAML przez moduł pywayne.cv.camera_model opakowujący bibliotekę C++, odczytuje parametry i wykonuje projekcje (lift_projective, space_to_plane).

Repozytorium
wayne-skills ↗
Licencja
MIT
Ostatnia zmiana repozytorium
23.10.2026

Ocena i bezpieczeństwo

95/ 100Klasa: dobry
Format20 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 23.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Ładuje modele kamer z plików YAML przez moduł pywayne.cv.camera_model opakowujący bibliotekę C++, odczytuje parametry i wykonuje projekcje (lift_projective, space_to_plane).

Oryginalny opis (EN)

Camera model wrapper for camera_models C++ library via pybind11. Use when working with pywayne.cv.camera_model module to load camera models from YAML configuration files, access camera properties (model type, image size, parameters), perform projection operations (lift_projective, space_to_plane), and export camera parameters as dictionaries.

Jak działa

  1. Quick Start
  2. Loading from YAML
  3. Supported Camera Models
  4. Projection Operations
  5. Properties
  6. Parameters Dictionary
  7. Requirements
  8. Notes
Sekcje z nagłówków SKILL.md, w oryginale · 112 linii, 390 słów
Podgląd SKILL.md
---
name: pywayne-cv-camera-model
description: Camera model wrapper for camera_models C++ library via pybind11. Use when working with pywayne.cv.camera_model module to load camera models from YAML configuration files, access camera properties (model type, image size, parameters), perform projection operations (lift_projective, space_to_plane), and export camera parameters as dictionaries.
---

# Pywayne Camera Model

This module wraps the `camera_models` C++ library via pybind11, providing a Python interface for camera operations.

## Quick Start

```python
from pywayne.cv.camera_model import CameraModel
from pywayne.cv.tools import write_cv_yaml
import numpy as np

# Create camera model
camera = CameraModel()

# Load from YAML file
camera.load_from_yaml('camera_config.yaml')

# Access properties
print(f"Model: {camera.model_type}")
print(f"Size: {camera.image_width}x{camera.image_height}")
```

## Loading from YAML

```python
from pathlib import Path

# Sample YAML configuration
yaml_data = {
    "model_type": "PINHOLE",
    "camera_name": "my_camera",
    "image_width": 1280,
    "image_height": 720,
    "distortion_parameters": {"k1": 0.0, "k2": 0.0},
    "projection_parameters": {"fx": 600.0, "fy": 600.0, "cx": 640.0, "cy": 360.0}
}

# Write YAML file
write_cv_yaml('camera_config.yaml', yaml_data)

# Load model
camera.load_from_yaml('camera_config.yaml')
```

## Supported Camera Models

| Model Type | Description |
|------------|-------------|
| `PINHOLE` | Standard pinhole camera with radial distortion |
| `PINHOLE_FULL` | Full pinhole model with all distortion parameters |
| `CATA` | Catadioptric camera model |
| `EQUIDISTANT` | Equidistant camera model |
| `OCAM` | Unified camera model |

## Projection Operations

### lift_projective()

Lifts a 2D image point to a 3D projective ray:

```python
# Input can be tuple, list, or numpy array
ray_3d = camera.lift_projective([u, v])  # Returns np.ndarray (x, y, z)
```

### space_to_plane()

Projects a 3D point onto the 2D image plane:

```python
# Input can be tuple, list, or numpy array
uv = camera.space_to_plane([x, y, z])  # Returns np.ndarray (u, v)
```

## Properties

| Property | Description |
|---------|-------------|
| `model_type` | Camera model type (enum) |
| `camera_name` | Name of the loaded camera |
| `image_width` | Image width in pixels |
| `image_height` | Image height in pixels |

## Parameters Dictionary

Export all camera parameters as a dictionary:

```python
params = camera.get_parameters_as_dict()
print(params)
```

Includes model-specific parameters:
- **Pinhole**: `k1`, `k2`, `p1`, `p2`, `fx`, `fy`, `cx`, `cy`
- **Pinhole Full**: `k1-k6`, `p1-p2`, `fx`, `fy`, `cx`, `cy`
- **CATA**: `xi`, `k1-k2`, `p1-p2`, `gamma1-2`, `u0`, `v0`
- **Equidistant**: `k2-k5`, `mu`, `mv`, `u0`, `v0`
- **OCAM**: `C`, `D`, `E`, `center_x`, `center_y`, `poly`, `inv_poly`

## Requirements

- `camera_models` - C++ library (auto-downloaded via gettool if missing)
- `numpy` - Array operations
- `pywayne.cv.tools.write_cv_yaml` - For writing YAML files

## Notes

- Library is automatically checked and downloaded via `gettool` if not found
- Supports both tuple/list and numpy array inputs for projection methods
- Output from projection methods is always `np.ndarray` with `dtype=np.float64`

Wersje

W bazie nie ma innych skilli o nazwie pywayne-cv-camera-model.

Migawka bazy z 28.10.2026 · wersja paczki 2dafa6e21627 (skrót SHA-256 całej paczki)

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100camera-interface
    Prowadzi przez tworzenie i konfigurację instancji VideoSystem do akwizycji z kamer: parametry konstruktora, metody cyklu życia, przydział ID systemu i wybór kodowania.
  • 95pywayne-cv-tools
    Odczytuje i zapisuje pliki YAML OpenCV (FileStorage) z zagnieżdżonymi strukturami, tablicami numpy, typami podstawowymi i listami, w tym węzły Map, Seq i macierze.
  • 95pywayne-cv-apriltag-detector
    Wykrywa narożniki znaczników AprilTag na obrazach do kalibracji kamer i estymacji pozy, z odczytem identyfikatorów, wyborem rodziny (tag16h5, tag36h11) i opcjonalnym przetwarzaniem wstępnym.
  • 100yaml-config
    Czyta i zapisuje pliki konfiguracyjne YAML, ładuje parametry pojazdu i obsługuje parsowanie konfiguracji z poprawną obsługą błędów.
  • 100camera-setup
    Prowadzi przez narzędzia MCP ataraxis-video-system: wykrywanie kamer, weryfikację wymagań kodowania, testy sesji wideo i konfigurację kamer GenICam przez odczyt oraz zapis węzłów.
  • 100camera-api
    Obsługuje API kamer i zdarzeń w chmurze: lista urządzeń, status online, najnowsza miniatura, zdarzenia z danego dnia oraz zrzut ekranu na żądanie.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.