Metadata-Version: 2.4
Name: vixel
Version: 0.1.0
Summary: Biblioteca educativa para procesamiento digital de imagenes y vision por computador clasica (filtros, ORB, Viola-Jones).
Author: Samuel Leonel Pacheco, Valentina Tabares Bonilla
License-Expression: MIT
Project-URL: Homepage, https://github.com/samuelleonel/vixel-backend
Keywords: image-processing,computer-vision,education,orb,viola-jones,opencv
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Education
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Image Processing
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.24
Requires-Dist: opencv-python-headless>=4.8
Requires-Dist: pillow>=10.0
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: ruff>=0.4; extra == "dev"
Dynamic: license-file

# Vixel

Biblioteca Python educativa de **procesamiento digital de imágenes** y **visión por computador clásica**: filtros punto a punto / convolución, ORB con homografía, y Viola-Jones (Haar cascades).

**Versión actual:** ver `pyproject.toml` o `python -c "import vixel; print(vixel.__version__)"`.

## Instalación

```bash
pip install vixel
```

*(Mientras desarrollas desde el repo:)*

```bash
pip install -e .
```

## Uso rápido desde Python

```python
from vixel.filters import FILTERS, negative_image, sobel_edge

png_bytes = open("foto.png", "rb").read()
out = negative_image(png_bytes)
# out["image_bytes"], out["image_base64"], out["meta"]

out2 = FILTERS["box_blur"](png_bytes, {"size": 5})
```

ORB y Viola-Jones (el mismo contrato `dict` con PNG + meta):

```python
from vixel.vision import run_orb, run_viola_jones, resolve_cascade_path

target = open("plantilla.jpg", "rb").read()
scene = open("escena.jpg", "rb").read()
r = run_orb(target, scene)

cascade_xml = resolve_cascade_path("face_default")
rj = run_viola_jones(scene, cascade_xml)
print(rj["meta"]["boxes"])
```

Especificaciones de parámetros:

```python
from vixel.specs import FILTER_SPECS, VISION_SPECS
```

## Estructura del paquete

| Ruta | Rol |
|------|-----|
| `vixel/filters/` | Filtros punto a punto y por convolución. |
| `vixel/vision/` | ORB con homografía y Viola-Jones. |
| `vixel/io/` | Codecs de entrada/salida de imagen. |
| `vixel/specs.py` | Catálogo estático de parámetros. |
| `tests/` | Pruebas de humo. |
| `docs/` | Documentación de la biblioteca. |

## Dependencias runtime de la librería

NumPy, Pillow, OpenCV (`opencv-python-headless`).

## Autores

- Samuel Leonel Pacheco  
- Valentina Tabares Bonilla  

## Licencia

MIT — véase [`LICENSE`](LICENSE).

## Subir a PyPI

```bash
pip install build twine
python -m build
twine upload dist/*
```

Ajusta `[project.urls]` en `pyproject.toml` con la URL real de tu repositorio antes de publicar.
