I am making a small prototype, and I am looking for someone to use C++ and OpenCV to track a single image (a known image on a piece of paper/cardboard that you can pre-train such as the OpenCV checkerboard pattern) using a webcam and then rendering an object on top of the item being tracked. The object on top would be rendered in 3D using the distance of the tracked flat image. The flat image can be selected and trained ahead of time to make it easy to determine its scale and orientation in the live video feed from the camera. Then, the 3D rendering will take advantage of the scale and orientation to do the rendering appropriately over the tracked image. See the attached image that shows the black and white grid image has been found and its scale and orientation determined. Then, the simple 3D cube as been rendered on it in the correct orientation and scale. This is what I am trying to replicate in C++ and OpenCV. I can provide more details and image examples directly if needed. In addition, the results will need to be saved to a video file using OpenCV. That is, the live video feed comes in, one frame at a time, you find the 2D image (of the OpenCV chessboard image), determine its pose, render the 3D object on it, and then save that frame to a video stream object in OpenCV. At the end, you write the video to a video file using OpenCV. The 2D image will simply be the OpenCV black and white chessboard. This is something provided in OpenCV and easy for you to print using a printer. The 3D object to be rendered can be a cube or some other interesting object that can even change over time to make the video more interesting. The rendering can be done using OpenGL or directly in OpenCV. The project should be completed using OpenCV 3.1 and Visual Studio 2015 or 2013. I have an initial project that partially works that you can start with. I also have some sample videos you can use.