# Awesome-OpenSourcePhotography

A list of awesome free open source software & libraries for photography. Also tools for video. For more awesomeness, check out awesome.

- General
- Camera Firmware Mods
- Libraries
  - Canon
  - GoPro
  - Sony
- Utilities
- Analogue Photography
- RAW image developers
- HDR Specific Software
- Panorama Stitching
- Photo Organizers
- EXIF Editors
- Photo Downloaders
- Camera Tetherers
- Monitor Color Correction
- 360° Images
- Alternative Image Viewers
- Useful GIMP Mods or Scripts
- Communities
- Resources
- Video
  - General tools
  - Compositing software
  - Video Libraries
- Scripts
  - Video to Panorama

## General

- GIMP - A swiss knife for image manipulation.
- PhotoFlow - A non-destructive photo retouching program including RAW image development.
- ImageMagick - A suite of command-line utilities for modifying and working with images.
- GraphicsMagick - GraphicsMagick is usually faster than ImageMagick.

## Camera Firmware Mods

- CHDK - Canon Hack Development Kit, for Canon cameras.
- Magic Lantern - A software enhancement that offers increased functionality to Canon DSLR cameras.
- Autoexec Hack - Compilation of hacks for GoPro Cameras.
- PTool Firmware Manipulation Tool - Change the video recording parameters of Panasonic’s cameras.
- Nikon Hacker - Nikon Patch and Nikon Emulator, 2 softwares for Nikon cameras.
- Xiaomi Yi Autoexec - Compilation of autoexec scripts and mods for Xiaomi Yi camera.

## Libraries

- LibGphoto2 - C APi for Digital camera access and remote control. Java,python,C#, and much more bindings.

### Canon

- OfxCanon - OpenFrameworks addon for the Canon EDSK.
- Edsdk4j - Canon SDK for Java.

### GoPro

- GoPro - API for controlling GoPro Hero 3 Camera from Node.js.
- GoPro - GoPro Hero 4 - Python API.
- GoPro - A Python library and a CLI that can interface with GoPro HERO3, HERO3+, and HERO4 cameras over http.
- GoPro.Hero - A lightweight c# library to access and control GoPro HERO.

### Sony

- SonyPy - Python module for Sony Camera Remote API.

## Utilities

- Timelapse-sony - Android app for creating timelapse via “Ctrl with Smartphone” mode or connected by NFC.
- Remoteyourcam-usb - Control your Canon or Nikon DSLR camera from your Android device through USB.
- digiCamControl - DSLR camera remote control open source software.

## Analogue photography

- Digitaltruth - Film development chart.

## RAW image developers

- Darktable - An open source photography workflow application and RAW developer.
- RawTherapee - A cross-platform raw image processing program.
- Photivo - A multi platform photo processor for RAW and bitmap images with 16 bit precision.
- Raw Studio - Read and manipulate RAW images from digital cameras.
- UFRaw - A utility to read and manipulate raw images from digital cameras.
- DCRaw - Decoding raw digital photos in Linux.
- Lightzone - Open-source digital darkroom software for Windows/Mac/Linux.
- Fotoxx - A Linux program for editing photos and other images.

## HDR Specific Software

- Luminance - A complete workflow for HDR imaging.
- QPSFTMO - HDR Tone Mapping GUI for Linux.
- PFS Tools - A set of command line programs for reading, writing and manipulating HDR images and video frames.

## Panorama Stitching

- Hugin - An easy to use cross-platform panoramic imaging toolchain.
- Panorama Tools - A framework for re-projecting and blending multiple source images into immersive panoramics of many types.

## Photo Organizers

- Shotwell - A photo manager for GNOME 3.
- DigiKam/ShowFoto - Open Source Photo manager for KDE/Gnome desktop.
- GPhoto - A program and library framework that lets users download pictures from their digital cameras.
- Lychee - A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.
- Simple Gallery - A Android gallery app for viewing photos and videos similar to android stock gallery with support for file copy/move/rename/delete/share.
- Leaf Pic - Material-designed android gallery alternative.
- A Photo Manager - Manage local photos on Android: gallery, geotag with photomap, tags, find, sort, view, copy, delete, send,…
- PhotoPrism - PhotoPrism™ is a server-based application for browsing, organizing and sharing your personal photo collection.

## EXIF Editors

- ExifTool - A program for reading, writing, and manipulating image, audio, and video metadata.
- Exiv2 - Exiv2 is a C++ library and a command-line utility to read, write, delete and modify Exif, IPTC, XMP and ICC image metadata.

## Photo Downloaders

- Rapid Photo Downloader - A photo and video downloader for the Linux Desktop.

## Camera Tetherers

- Entangle - Entangle provides a GUI for taking photographs with a digital camera completely controlled from the computer.

## Monitor Color Correction

- Hughski
- DisplayCal - Open source display calibration and characterization.

## 360° Images

- Open360viewer - Open source 360° media viewer.

## Alternative Image Viewers

- Geeqie - An image viewer and image organiser program for Unix-like operating systems.
- FEH - An X11 image viewer.

## Useful GIMP Mods or Scripts

- GIMP Plugin Registry
- Cinepaint - A program for painting and retouching bitmap frames of films based on GIMP.

## Communities

- Flickr Open Source Photography Group
- /r/FOSSPhotography - Community about Free open source software for Photography on reddit.
- Open Source Photography Community on Google+
- Open Source Photography Group on Facebook
- Open Source Photography Sub on Reddit
- Open Source Photography Group on 500px
- PIXLS.US - Community dedicated to tutorials, workflows, and showcases of high-quality photography using Free Software tools

## Resources

- Unsplash.com - Free (do whatever you want) high-resolution photos, licensed under the Unsplash License (changed from CC0)
- Pexels.com - Royalty free high-resolution stock photos, licensed under Creative Commons Zero (CC0)
- Pixabay.com - Royalty free stock photos and videos, licensed under Creative Commons Zero (CC0).
- Shutterography.com - Free Photos.

## Video

### General tools

- FFmpeg - A complete, cross-platform solution to record, convert and stream audio and video.
- Virtualdub - A free video tool for basic editing and encoding.

### Compositing software

- Natron - A node-based compositor based on the same principles as state-of-the art tools used in film and television post-production.
- ButtleOFX - A simple, user-friendly and open source compositing software.
- Blender - This open source 3D graphics has tools for video editing.
- Shotcut - A free, open source, cross-platform video editor.

### Video Libraries

- OpenFX - An Open Plug-in API for 2D Visual Effects.
- TuttleOFX - An image processing framework based on OpenFX plugin format.
- Vid.stab - A video stabilization library which can be plugged-in with Ffmpeg and Transcode.
- Frei0r - A large collection of free and portable video plugins.

## Scripts

### Video to Panorama

Using FFmpeg and Hugin.

    #!/bin/bash
    mkdir -p /tmp/images
    ffmpeg -i video.avi -r 5 -qscale 3  tmp/images/image-%3d.jpg
    pto_gen -o tmp/hugin.pto tmp/images/*.jpg
    cpfind --multirow -o tmp/hugin.pto tmp/hugin.pto
    cpclean -o tmp/hugin.pto tmp/hugin.pto
    linefind -o tmp/hugin.pto tmp/hugin.pto
    autooptimiser -a -l -s -m -o tmp/hugin.pto tmp/hugin.pto
    pano_modify -o tmp/hugin.pto --center --fov=AUTO --canvas=70% tmp/hugin.pto
    pto2mk -o tmp/hugin.mk -p tmp/output tmp/hugin.pto
    make -f tmp/hugin.mk all

license

OpenSourcePhotography.md Github