Skip to content

Latest commit

 

History

History
58 lines (40 loc) · 1.4 KB

File metadata and controls

58 lines (40 loc) · 1.4 KB

ComputerVision

Core Guidelines

  1. Write readable code and explicit the algorithms.
  2. Document first.
  3. Reuse code.

Additional rules

  1. Geometric primitives should have their own class that carry semantic values.
    1. 2D Inhomogeous point, called Point
    2. 3D Inhomogeneous point, called Point3D
    3. 2D Homogeneous point, also Point3D. We ensure homogeneity through post / pre conditions.

Interfaces

Each class / method has an low-level array in / out. On top of it, we build an interface that deals with geometric concepts (points, etc) and passes them down as arrays.

How to use Bazel

  1. Add your pip requirements in requirements.in
  2. Run bazel run requirements.update this will trigger the compile_pip_requirements function in BUILD.bazel. This then builds the requirements.txt file, that will be used by other targets with the requirement() function.

Docker

There is a Docker folder with a docker file for running prechecks (code formatting, linting etc).

How To Use

Setup

sudo docker build -t linter Docker/

Run (from repo root)

sudo docker run -v ${PWD}:/app linter

Docker for Bazel

There is also a dockerfile in Docker/Bazel.

Build the image

docker build -t bazel Docker/Bazel 

Run a target

bash Docker/build_with_docker.sh
docker exec -w /app mybazel bazel run //lib/CameraModels:omnidirectional_main
```


# Dependencies

- Docker
- Bazel