Giter Club home page Giter Club logo

pylatscan's Introduction

PyLatScan - Python Laser Triangulation Scanning

A set of python scripts for 3d scanning

installation

You can install pylatscan by running setup.py in the python directory of this repository.

The following commands are then available:

  • pylatscan_cli - Commandline tool to controll the arduino and record pictures
  • pylatparse_cli - Commandline tool that processes a directory of scanned images into a pointcloud
  • pylatscan - A Gtk/Glade wrapper around pylatparse_cli
  • pylatparse - A Gtk/Glade wrapper around pylatparse

Installing the scripts globally works like this:

git clone https://github.com/mvhenten/pylatscan
cd pylatscan/python
sudo python setup.py install

how it works

note: I do not own the scanner hardware anymore, but I've been receiving a number of questions on how to operate one. I'll try and explain here

Laser triangulation is relatively straight forward: by projecting a laser line onto the model at a 30 degree angle, the countours of the object can be extracted from an picture taken relatively easy. By rotating the object, and taking many pictures, these countours can be combined into a 3d point cloud.

After constructing a 3d point cloud, a mesh is constructed. meshlab is used to construct the mesh. The point cloud should not contain too much noise for this to work.

1. Step one: take (many) pictures

The script pylatscan_cli is used to control a stepper motor, two lasers and a led "flash light" to take pictures automatically. The script pylatscan is a Glade/GTK wrapper around this commandline script, so a non-techie can operate the scanner. Pictures are taken using a webcam, so the better your webcam, the better the final results. You should carefully calibrate the webcam using some thing like guvcview, it can be installed on Ubuntu using apt-get install guvcview.

The process is very sensitive to changes in lighting conditions, so you should block out any environmental light wile scanning. A third picture is taken on every rotation using a led light, providing colors to the eventual point cloud.

Not that the extra laser and color pictures are actually optional, some models wil scan just fine with only one laser. Our stepper motor provided 400 steps, more steps will increase scanning time but improves the accuracy. It took us less then 10 minutes to scan a small clay model using this setup.

2. Step two: process the scanned images

After running the scanner, you will end up with a directory of 1200 images. The script pylatparse_cli is used to convert the images into a point cloud.

Two lasers provide two point clouds, one from each side, giving us more raw points to work with. pylatparse will try to merge the two point clouds as good as possible.

These pointclouds need to be merged into one point cloud. The point clouds will not match 100% in size, so some extra interpolation steps are needed.

hardware

Hardware development is currently in progress. I've written an informal description of the hardware developemnt on the FabLab amsterdam website.

Furthermore, there's picures on flicr and blueprints of the scanner

contact

You can contact me at matthijs (at) waag (dot) org

pylatscan's People

Contributors

mvhenten avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pylatscan's Issues

Running a project on Windows 10

Hello, I'm trying to start a project, but every attempt ended in failure. I'm new to this business, it seems that I did everything correctly python is installed and the libraries are downloaded, but I could not start it. Can you tell me what I'm doing wrong?

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.