- create depth maps from stereo pairs (stereo matching),
- generate intermediate synthetic views (lenticular),
- create depth maps from multiple views (multi-view stereo matching),
- create dense 3D reconstruction (point cloud) from multiple views (structure from motion and multi-view stereo),
- perform 2D to 3D image conversion (stereo conversion),
- perform edge-preserving smoothing,
- rectify/align stereo pairs, and
- much more
is available on dropbox in rar archive form, totally free of any charge.
The executables are for the pc windows operating system in 32 bit or 64 bit flavor. It is highly recommended to use 64 bit execs because 32 bit execs can only address 4 gigabytes of memory and are not updated anymore. So, if your machine is 64 bit, please use the 64 bit archives, not the 32 bit archives. The programs were developed on a linux machine using Qt for the graphical interface. The port to windows was done rather painlessly thanks to the MinGW compiling environment.
Given an executable (for example, DMAG5), the number (5 for DMAG5) used after the acronym (DMAG for DMAG5) is not a version number. For example, in the DMAG line of software, DMAG, DMAG2, DMAG3, DMAG4, DMAG5, DMAG6, and DMAG7 have very little to do with each other. In particular, DMAG7 is certainly not better than the rest.
The executables without GUI (Graphical User Interface) are run via a .bat file (batch file). When you unzip any of the archives containing GUI-less executables, there will be a manual for the program of interest called *_manual.pdf (where * is the name of the program) which explains how to use the program. There will also be a directory called *_test (where * is the name of the program) that contains a sample test case which can be run directly by double-clicking on the batch file after having made sure the path to the .exe executable in the batch file is correct. Typically, to run any of the GUI-less executables, one would create a directory which contains the input images, copy the batch file (*.bat) and the input file (*_input.txt) from the *_test directory, edit the batch file so that the path to the .exe executable is correct, possibly edit the input file to modify the parameters, and then double-click on the batch file to launch the program of interest. Personally, to edit a file, I use a program called Notepad++ but any other text editor can be used. If you are experiencing problems running the GUI-less executables, please send me you batch file (*.bat file) and input file (*_input.txt) where * is the name of the program you want to use.
For some executables, the image size doesn't matter too much, in other words, you can use pixel heavy stuff but, in general, it's better to take it easy on the image size and start with images that are relatively small (under two mega pixels for instance). If it looks like the executable is not completely hogging the machine, then you can try using larger images. If you really don't want to reduce the size of the images, you can make use of the downsampling factor that's available in some of the executables.
Recommendations on what to use depending on what you are looking for:
Two-view epipolar rectification:
- Use ER9b to rectify the images (also outputs min and max disparities needed by automatic depth map generators). Note that the input two views may be completely misaligned. The quality of the rectification process is given by the mean vertical disparity error (it's usually close to perfect if below 0.5 pixels). If ER9b appears to be too aggressive (large zooming effect and/or large white framing areas) and the views are not too misaligned to begin with, use StereoPhoto Maker's auto-alignment feature and get the min and max disparities with DF2. I strongly recommend using ER9b prior to generating depth maps although I understand having a lot of rotation in the images can be a problem.
Generation of depth map from two views:
- To get depth map or the depth maps, I have implemented (in chronological order): DMAG (followed by DMAG9b if you don't like fuzzy object borders), DMAG2 (use downsampling if images are large), DMAG3 (use downsampling if images are large), DMAG5, DMAG6 (use downsampling if images are large), or DMAG7. I recommend using DMAG5 for most stereo pairs because it's fast and it usually gives good results. For small stereo baseline, DMAG5b should be used instead of DMAG5. Check A Qualitative Comparison of Selected Automatic Depth Map Generators for a link to an academic looking paper that attempts to compare DMAG2, DMAG5, DMAG6, and DMAG7. Check Depth Map Generation using Optical Flow for an in-depth look at DMAG. Check Depth Map Generation using Graph Cuts for an in-depth look at DMAG3. To improve depth map quality, you may want to post-process the depth map(s) with DMAG9b.
Generation of intermediate synthetic views (tweeners) between the left and right images:
- Use FSG6 to get the intermediate frames. Input is the left image, left depth map, right image, and right depth map. Make sure that the right depth map is such that foreground is white and background is black (just like the left depth map). If the right depth map comes from a depth map generator that produces two depth maps (left and right), it will need to be color inverted before using FSG6. If you have only have one reference image and one depth map or if you want to increase the stereo effect of a stereo pair, you can use FSG4 or its big brother FSG11 to get synthetic frames on either side of the reference image.
Generation of depth map from multiple views:
- Use SfM10 (Structure from Motion) to get the nvm file and then DMAG8b to get the depth map. Computing a depth map in the multi-view case is not recommended. It makes much more sense to compute the dense 3D reconstruction instead.
3D scene reconstruction from multiple views:
- Use SfM10 (Structure from Motion) to get the nvm file and then MVS10 (Multi-View Stereo) to get the dense 3D reconstruction. The main output is a point cloud representing the 3D scene in ply format.
2D to 3D image conversion:
- Use DMAG4 to get the depth map in a semi-automatic manner. DMAG9 or DMAG11 may be used as an alternative with very similar results. To know more about DMAG4, check 2D to 3D Image Conversion using DMAG4.
- Not sure it's needed since the depth map generators on offer here all have some kind of edge-preserving safeguards built in. If you have depth maps with outliers (tiny specks at the wrong depths), EPS9 is good at removing them. To smooth depth maps while preserving object boundaries, you can use EPS2, EPS5, or EPS7. You can see them in action in 3D Photos - Reindeer. I personally temd to prefer EPS2 which is a "true" (as opposed to approximated) bilateral filter.
Depth map improvement:
- To improve the quality of any depth map, DMAG9b can be used. It is a very powerful tool, much more potent than a mere edge preserving smoother. DMAG9b is more a depth map "improver" than a depth map generator. To see DMAG9b in action against EPS2, EPS5, and EPS7, check 3D Photos - Reindeer. For more info about DMAG9b, consult Depth Map Improvement Using The Fast Bilateral Solver.
Generation of an animated 3d gif (smooth wiggle not to be confused with the migraine inducing two-view wiggle) from a reference image and depth map:
- Use wigglemaker to get the animated gif.
What follows is the complete list of all the executables that you can download. The executables which are grouped into archives (in the rar format) are hosted on dropbox.
The executables contained in the 32-bit archive ugosoft3d.rar and 64-bit archive ugosoft3d-x64.rar are described in the following posts:
- Depth Map Automatic Generator (DMAG), and
- Frame Sequence Generator (FSG).
The executables contained in the 32-bit archive ugosoft3d-2.rar and 64-bit archive ugosoft3d-2-x64.rar are described in the following posts:
- Depth Map Automatic Generator 2 (DMAG2),
- Disparity Finder 2 (DF2),
- Frame Sequence Generator 2 (FSG2), and
- Edge Preserving Smoothing 2 (EPS2).
If you would prefer executables with no Graphical User Interface (GUI), download the 64-bit archive ugosoft3d-2-nogui-x64.rar (only contains DMAG2).
The executables contained in the 32-bit archive ugosoft3d-3.rar and 64-bit archive ugosoft3d-3-x64.rar are described in the following posts:
- Depth Map Automatic Generator 3 (DMAG3), and
- Frame Sequence Generator 3 (FSG3).
The executables contained in the 32-bit archive ugosoft3d-4.rar and 64-bit archive ugosoft3d-4-x64.rar are described in the following posts:
- Depth Map Automatic Generator 4 (DMAG4), and
- Frame Sequence Generator 4 (FSG4).
The executables contained in the 32-bit archive ugosoft3d-5.rar and 64-bit archive ugosoft3d-5-x64.rar are described in the following posts:
- Depth Map Automatic Generator 5 (DMAG5),
- Depth Map Automatic Generator 5b (DMAG5b),
- Depth Map Automatic Generator 5c (DMAG5c),
- Edge Preserving Smoothing 5 (EPS5), and
- Frame Sequence Generator 5 (FSG5).
If you would prefer executables with no Graphical User Interface (GUI), download the 64-bit archive ugosoft3d-5-nogui-x64.rar (only contains DMAG5).
The executables contained in the 32-bit archive ugosoft3d-6.rar and 64-bit archive ugosoft3d-6-x64.rar are described in the following posts:
- Depth Map Automatic Generator 6 (DMAG6) and
- Frame Sequence Generator 6 (FSG6).
If you would prefer executables with no Graphical User Interface (GUI), download the 64-bit archive ugosoft3d-6-nogui-x64.rar (only contains DMAG6).
From now on, I will not support 32 bit any longer as it is safe to say that nobody uses (or should use) Windows xp anymore. Everything is going to be 64 bit. Also, I will not bother with a graphical interface any longer. There is no point having a graphical interface when any parameter that is needed can be read from a file. Also, it is plain easier for me not to have to worry about Qt on Linux (where I develop everything) and Windows.
The executables contained in the 64-bit archive ugosoft3d-7-x64.rar are described in the following posts:
- Depth Map Automatic Generator 7 (DMAG7) and
- Edge Preserving Smoothing 7 (EPS7).
The executables contained in the 64-bit archive ugosoft3d-8-x64.rar are described in the following posts:
- Depth Map Automatic Generator 8 (DMAG8),
- Depth Map Automatic Generator 8b (DMAG8b),
- Depth Finder 8 (DF8), and
- Camera Remover 8 (CR8).
The executables contained in the 64-bit archive ugosoft3d-9-x64.rar are described in the following posts:
- Depth Map Automatic Generator 9 (DMAG9),
- Depth Map Automatic Generator 9b (DMAG9b),
- Edge Preserving Smoothing 9 (EPS9),
- Epipolar Rectification 9 (ER9), and
- Epipolar Rectification 9b (ER9b).
The executables contained in the 64-bit archive ugosoft3d-10-x64.rar are described in the following posts:
- Structure from Motion 10 (SfM10), and
- Multi View Stereo 10 (MVS10).
The executables contained in the 64-bit archive ugosoft3d-11-x64.rar are described in the following posts:
- Shallow Depth-of-Field Generator 11 (SDOFG11),
- Point Cloud Maker 11 (PCM11),
- Depth Map Automatic Generator 11 (DMAG11),
- Depth Map Automatic Generator 11b (DMAG11b), and
- Frame Sequence Generator 11 (FSG11).
But wait! There's more ...
Websites (web apps) related to automatic depth map creation:
- Wiggle Maker. For more info, visit Wiggle Maker blog post.
- Depth Map Viewer. For more info, visit Depth Map Viewer blog post.
If you have any questions, want to give me some feedback/suggestions, or just want to let me know that you are using my software (successfully I hope), send me an email (ugocapetodifrancia3d
When the manual says to put the correct path to the executable in the .bat file, the way to get the proper path is as follows:
- using the file explorer, go to the directory where you have extracted the archive (where the executables are),
- click on the folder symbol to the left of the current "symbolic" path,
- copy/paste that path (should already be selected) into the .bat file.