Structured Light Demo
- caps
- Mar 10, 2020
- 1 min read
Updated: Apr 17, 2021
This is a graphics renderer I wrote that simulates the position calculation of projected lights on an object. The current work-in-progress is summarized by an implementation that shall render points and provide these points 3D localization. At the moment I have just captured a video however my plan is to put this on a GUI and release it so people can download and play around with.
How it works: The points are projected from an emitter onto an cube. The emitter is attached to a camera. Since the emitter frame relative to the camera is known, one should be able to determine the relative 3D real-world position of the points, projected in screen space, by triangulation.
I written in C++ the only one library used is OpenCV for merely printing an image array of pixels, resultant from rendering on screen.
Technical Approach: The implementation can be divided into three main objects, the cube, the camera and the emitter. The relation between the objects is based on their position and rotations.
• Cube: The cube is defined by its main points in object/local space. These are further transformed into world space by the appropriate transformation matrices.
• Camera: The camera is defined by a 6-DOF frame.
• Emitter: The emitter is attached to the camera, however, it can be transformed, relative to camera space (also 6-DOF).
• Ray Emission The emitter casts rays that shall be projected on the cube.
• Point projection and point 3D localization: the main functionality of the algorithm is to be able to localize the 3D points in space based on their projection on the screen and the emitter relative position.
Comments