Skip to content

A opencv fisheye camera model bindings for Node.js.

License

Notifications You must be signed in to change notification settings

sigoden/node-fisheye

Repository files navigation

Fisheye camera model

A opencv fisheye camera model bindings for Node.js.

Install

install opencv 3.x

For linux

git clone https://github.com/opencv/opencv
mkdir opencv/build
cd opencv/build
cmake ..
sudo make install

For mac

brew tap homebrew/science
brew install opencv@3
brew link --force opencv@3

install npm package

npm install @sigodenjs/fisheye

Usage

Prepare checkboard

Download the checkerboard pattern and print it on a paper (letter or A4 size). You also want to attach the paper to a hard, flat surface such as a piece of cardboard. The key here: straight lines need to be straight.

Take sample photos

Hold the pattern in front of your camera and capture some images. You want to hold the pattern in different positions and angles. The key here: the patterns need to appear distorted in a different ways (so that OpenCV knows as much about your lens as possible).

demo

Find K and D

let imgs = fs
    .readdirSync('example/samples')
    .map(file => fs.readFileSync('example/samples/'+file));
let {K, D} = fisheye.calibrate(imgs, 9, 6);

Undistort image

let img = fs.readFileSync('example/samples/IMG-0.jpg');
let buf = fisheye.undistort(img, K, D);
fs.writeFileSync('/tmp/IMG-0.jpg', buf);

before --> after

License

Copyright (c) 2018 sigoden

Licensed under the MIT license.

About

A opencv fisheye camera model bindings for Node.js.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published