Skip to main content

A simple OpenCV checkerboard camera calibration python package

Project description

OpenCV Camera Calibration

Checkerboard calibration images

A simple tool for checkerboard camera calibration if you are tired of re-writing from the OpenCV docs on camera calibration.

Install

pip install opencv_calibrate 

Prerequisites

This package relies on ffmpeg, please ensure it is installed. See python ffmpeg for more.

Usage

import opencv_calibrate

# image
image_directory_path = "example_images/"

# image params
checkerboard = (10, 7)
ret, camera_parameters = opencv_calibrate.image(image_directory_path, checkerboard)

# or with video

# video
video_path = "/path/to/video"

# video params
ret, camera_parameters = opencv_calibrate.video(video_path)

Then we can acess the parameters in the camera_parameters object:

# camera intrinsic matrix
camera_matrix = camera_parameters.camera_matrix

# distortion matrix
distortion_matrix = camera_parameters.distortion_matrix

# rotation vectors
rotation_vecs = camera_parameters.rotation_vecs

# translation vectors
translation_vecs = camera_parameters.translation_vecs

# projection error
projection_error = camera_parameters.projection_error

# save parameters
camera_parameters.save("/path/to/dir/")

# load
from opencv_calibrate import CameraParameters
# from npz
camera_parameters.load_from_npz("/path/to/params.npz")
# from yaml
camera_parameters.load_from_yaml("/path/to/params.yaml")

or from the command line (this is also callable by python -m opencv_calibrate.calibrate):

calibrate [-h] [--video VIDEO] [--image_dir IMAGE_DIR] [--output_dir OUTPUT_DIR] [--checkerboard CHECKERBOARD]

Camera calibration of videos and images containing checkerboard run with DEBUG>1 for more outputs

options:
  -h, --help            show this help message and exit
  --video VIDEO         Path to the video file
  --image IMAGE_DIR
                        Path to the directory containing images
  --output_dir OUTPUT_DIR
                        Path to the output directory
  --checkerboard CHECKERBOARD
                        Number of rows and columns in comma seperated format e.g. "9, 6"

This will output a YAML file with the parameters:

camera_matrix:
- [f_x, 0.0, c_x]
- [0.0, f_y, c_y]
- [0.0, 0.0, 1.0]
distortion_matrix:
- [k1, k2, p1, p2 k3]
projection_error: float

and a .npz numpy file with addition of the extrinsic matrix.

Run with DEBUG environment variable for more outputs, e.g.

DEBUG=1 calibrate --image /path/to/images

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

opencv_calibrate-0.1.0.tar.gz (8.3 kB view hashes)

Uploaded Source

Built Distribution

opencv_calibrate-0.1.0-py3-none-any.whl (8.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page