Code Monkey home page Code Monkey logo

zhang-s-camera-calibration's Introduction

Zhang-s-Camera-Calibration

Actual Corners Reprojected Image

This repository contains the academic project exploriuniversity course project page can be found here.

Table of Contents

About The Project

This project is an implementation of Zhang's Camera Calibration algorithm, a fundamental process in 3D computer vision that allows for the extraction of metric information from 2D images. Using a planar pattern observed from multiple orientations, the algorithm estimates the camera's intrinsic and extrinsic parameters, and lens distortion factors. The project provides well-structured, annotated code, and comprehensive documentation, making it a valuable resource for students, researchers, and developers in the field of computer vision and augmented reality. Note: Users may need to adjust parameters to fit their specific camera setup and needs.

Repository Structure

The repository is structured as follows:

  • /Code: This Folder consist the Wrapper.py code for camera calibration.
  • /Calibration_Imgs/Outputs/: Consist of the Acutal and Reprojected corner images.

Technologies

This project leverages several significant technologies:

  • OpenCV: A robust library in the computer vision field, utilized here for image processing tasks along with its in-built camera calibration and distortion correction functionalities.

  • NumPy: An essential Python library for handling high-performance computations on multi-dimensional arrays and matrices, a common requirement in computer vision.

  • Zhang's Method: The cornerstone of this project, providing an effective and efficient approach to camera calibration by observing a planar pattern from multiple orientations.

  • Optimization Techniques: Employed within the calibration process to determine the best fit camera parameters, minimizing the discrepancy between observed and projected image points.

  • Distortion Models: Radial and tangential models are applied for accurate image reconstruction and considered during the calibration process.

  • Matplotlib: Deployed for visualization of calibration results, offering a clear graphical representation of images with overlaid calibration patterns.

Installation & Usage

To run the project locally, follow these steps:

  1. Clone the repository:
git clone https://github.com/Prasannanatu/Zhang-s-Camera-Calibration.git

Install the required dependencies. You can use the provided requirements.txt file to install the necessary packages. Run the following command:

pip install opencv-python numpy matplotlib scipy

Run the project using the provided scripts or commands. Refer to the documentation or project files for specific instructions on running the Calibration algorithms.

python3 Wrapper.py

References

The following sources have been instrumental in the development of this project:

  1. Z. Zhang. "A Flexible New Technique for Camera Calibration". IEEE Transactions on Pattern Analysis and Machine Intelligence. 2000. [link]

2.RBE-549 Computer Vision course project page[link].

Tags

  • Camera-Calibration
  • Comupter Vision
  • 3D-Reconstruction
  • Zhang's-Method
  • Optimization
  • Distortion-Correction

zhang-s-camera-calibration's People

Contributors

prasannanatu avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.