This python and hdf5 pdf scanner was made using low cost conventional items like video projector and webcams. A structured-light 3D scanner is a 3D scanning device for measuring the three-dimensional shape of an object using projected light patterns and a camera system.
Software was developed based on structured light and stereo vision with python language. Projecting a narrow band of light onto a three-dimensional shaped surface produces a line of illumination that appears distorted from other perspectives than that of the projector, and can be used for an exact geometric reconstruction of the surface shape. Horizontal and vertical light bands are projected on object surface and then captured by two webcams. 3D objects in a cost- and time-effective manner. We have experimented this technology in scanning a toy to prove performance. Specific needs are: medium-high accuracy, easy of use, affordable cost of the scanning device, self-registered acquisition of shape and color data, and finally operational safety for both the operator and the scanned objects.
In the design of our low-cost scanner, we chose to implement the emitter unit by using a video projector. The sensor can be either a custom device, a standard digital still camera or a webcam. Python language was used for programming for three reasons, one it is easy to learn and implement, two we can use OPENCV for image related routines and three it is portable among different operating system so you can use this program in windows, MAC and Linux. Projecting gray patterns and capturing images from two cameras “SL3DS1. Processing the 42 images of each camera and capture points codes ” SL3DS2.
Adjusting threshold to select masking for areas to be processed “SL3DS3. Find and save similar points in each camera “SL3DS4. 5 Calculate X,Y and Z coordinates of point cloud “SL3DS5. The output is a PLY file with coordinate and color information of points on object surface. You can open PLY files with CAD software like Autodesk products or an open source sofware like Meshlab. 7, OPENCV module and NUMPY should be installed to run these Python programs. I have also developed a GUI for this software in TKINTER that you can find in step six with two sample data sets .
Two cameras and projector should be connected to a computer with two video output like a notebook computer and the projector screen should be configured as an extension to main windows desktop. Here you can see images of cameras, projector and stand. The drawing file ready for cut are attached in SVG format. 6 x 22 x 25 Weight:2.
This video projector is used to project structured light patterns on the object to be scanned. The structured pattern consists of vertical and horizontal white light strips that are saved on a data file and webcams capture those distorted strips. Preferably use those cameras that are software controllable because you need to adjust focus, brightness, resolution and image quality. It is possible to use DSLR cameras with SDKs that are provided by each brand. Assembly and tests were conducted in Copenhagen Fablab with its support. For testing the system a fish toy was used and you can see the captured image.
Here you can see some human face scans and 3d scan of a wall. There are always some outlier points due to reflections or inaccurate image results. For testing the 3d scan software in this step I add two data sets one is scan of a fish and another is just a plane wall to see the accuracy of it. Open ZIP files and run SL3DGUI.
For using 3d scan part you need to install two cameras and projector but for other parts just click on the button. For testing the sample data first click on process then threshold, stereo match and finally point cloud. Install Meshlab to see the point cloud. We have a be nice policy. In the step 2, you say that it is better to use cameras with more than two times resolution. How did you get this result? Even if there is good texture on the surface of the object do you think that the projected patterns still provide a more accurate surface?
46 with native resolution 800×480 will work ? What would you estimate the resolution and accuracy to be with the logitech c920s? The reason I ask about resolution and accuracy is those are the standard metrics used to determine 3d scanner performance and I wanted to be able to compare your setup with alternatives like a line laser based scanner to see if it’s worth spending the extra money to do sls. Where does that figure come from? Presumably you use more than one pixel for each point? I would think these points are over a rather large area, so what sort of point per inch are we talking if you happen to know?