Capture3 is a C++ desktop application that can capture and process photos through a tethered connection with a digital camera. It started out as a research project to learn more about digital cameras, image processing, color spaces, C++, OpenCV and multi-threading. The main features are:
- Tethered capturing: Automatically capture multiple photos with different exposure values and focus planes, without touching the camera.
- Automatic color calibration: This works by detecting a X-Rite ColorChecker Digital SG target in a photo, then automatically detecting each of the 140 colored patches and calculating a white point and color matrix from these values.
- Exposure merging: Merge photos with different exposure brackets to create a HDR image.
- Focus merging: Merge photos with different focal planes through a technique called focus stacking to create one result image with a higher DOF (Depth Of Field).
- Color space visualizer: Preview images in RGB, HSB, XYZ and LAB color spaces, including 3D color space graphs.
Capture3 is developed using JetBrains CLion and can be built on a Mac with macOS Sierra or higher. Although it could support other camera's, it's only tested using a Nikon D3300 and Sigma 35mm f/1.4 DG HSM Art lens.
- Qt5 → Application framework used to create the GUI
- OpenCV → Image processing library
- OpenMP → Amazing multi-threading library
- Imatest → Great resource on color targets and color matrix calculations
- Bruce Lindbloom → Great resource color space math
- Oscar de Lama → Great resource on RAW processing
- autoconf 2.69
- automake 1.15
- gcc 4.9.4
- gcc 6.3.0
- gettext 0.19.8.1
- libiconv 1.14
- libtool 2.4.6
- mpc 1.0.3
- readline v6.3
- sed 4.2.2
- isl 0.12.2
- isl 0.16.1
- eigen 3.3.1
- tiff 4.0.7
- boost 1.63.0
- freeimage 3.17.0
- freetype 2.7.1
- gphoto2 2.5.11
- libgphoto2 2.5.11
- lcms2 2.8
- libexif 0.6.21
- libpng 1.6.27
- libusb 1.0.21
- libusb-compat 0.1.5
- pcre 8.39
- ffmpeg 3.2.2
- glfw 3.2.1
- libffi 3.2.1
- libgd 2.1.1
- opencv 3.2.0
- opencv_contrib 3.2.0
- gmp 6.1.2
- popt 1.16
- cloog 0.18.4
- cairo 1.14.8
- pixman 0.34.0
- fontconfig 2.12.1
- pkg-config 0.29.1
- jpeg 9b
- libraw 0.18.0
- libraw-demosaic-pack-GPL2 0.18.0
- libraw-demosaic-pack-GPL3 0.18.0
- mpfr 3.1.5
- nasm 2.12.02
- openssl 1.1.0c
We use Yarn package manager to manage our dependencies.
curl -o- -L https://yarnpkg.com/install.sh | bash
yarn install
./debug.sh
./release.sh