Giter Club home page Giter Club logo

binocular_vision's Introduction

Binocular_vision

Use grid image to construct point cloud and simple point cloud processing (upgraded version)

Introduction

The program of master's thesis
Paper links
The measurement which expresses the geometrical shape, position, gesture, movement and other information within the scope of the space is called the 3D measurement. The computer has the ability to obtain 3D information of objects by using the 3D measurement. These information are widely used, including design and analysis based on physical objects, detection and monitoring the production process, surveying and mapping of civic architecture and terrains, deformation monitoring, design of large-scale construction and piping, manufacture of airplane and ship, construction of road and bridge, electronic display of valuables, preservation of cultural relics, plastic surgery and virtual reality, etc.
This paper combined binocular vision system and structured light system together to calculate point cloud data, image processing, image stereo matching, and point cloud processing as well.

Function

image

1. Preparatory Work

  • Make chessboard image for calibrating camera
  • Make Binary Gray Code grid image for projection
  • Single camera calibration
  • Dual camera stereo calibration

2. Get Point Cloud

  • Use wavelet transform to remove image noise
  • Use Active Contour Models (Snake) to remove image background
  • Compute point cloud data

3. Point Cloud Processing

  • Display point cloud
  • Remove outliers
  • Point cloud down-sampling
  • Compute mark points in images
  • Point cloud registration by mark points and ICP

Installation

OS

WIN7WIN10

Install

VS2010 VS2017
OpenCV 2.14 OpenCV 3.41
PCL1.6 PCL1.81

Modify

opencv2/legacy/legacy.hpp

It doesn't exist in OpenCV 3.41 and modify the corresponding function for the new version.

sensor_msgs , CvPoint3D64d

They doesn't exist in PCL 1.81 and modify the corresponding function for the new version.

cv::goodFeaturesToTrack, cv::stereoCalibrate

Function overloading error in the new version.

cvSnakeImage

It has been deleted in OpenCV 3.41, and rewrite this function to apply to 3.41 from 2.14

cvSaveImage, cvShowImage,.. and so on

Modify part of the code for c++ version

pcl::visualization::CloudViewer viewer

Update the point cloud display for the new version

fopen,localtime,.. and so on

Fix some functions for the safe version

Usage

Reference video

Tip

  1. The image must be input in a certain order in stereo calibration and compute point cloud data. Please adjust the image name to achieve this sequence: left image1, right image1, left image2, right image2, ......
  2. It is difficult to succeed at a time in remove background, point cloud computing, and mark point computing. It need to adjust the corresponding maximum minimum value by the console output to obtain ideal results
  3. Point cloud registration input in this order: point cloud 1, point cloud 2, mark point 1, mark point 2.

binocular_vision's People

Contributors

yeelousun avatar

Stargazers

 avatar XStarry avatar quan zheng avatar  avatar  avatar

Watchers

James Cloos 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.