Skip to content
C++ research project to learn more about cameras, image processing, color spaces, OpenCV and multi‑threading.
C++ CSS CMake Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
installer
resources
screenshots
src
.editorconfig
.gitignore
CMakeLists.txt
INSTALL.md
LICENSE
README.md
debug.sh
logo.png
package.json
release.sh

README.md

Capture3

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:

  1. Tethered capturing: Automatically capture multiple photos with different exposure values and focus planes, without touching the camera.
  2. 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.
  3. Exposure merging: Merge photos with different exposure brackets to create a HDR image.
  4. 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).
  5. 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.

Learn more

  • 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

Screenshots

Empty interface

Full interface

Histogram panel

3D color space panel

Waveform panel

Requirements

Libraries

  • 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

Install

We use Yarn package manager to manage our dependencies.

curl -o- -L https://yarnpkg.com/install.sh | bash
yarn install

Run

./debug.sh

Release

./release.sh
You can’t perform that action at this time.