A simple ISP pipeline in C++. Read 14-bit Sony .ARW raw images and output 8-bit jpg images.
The project is almost written in C++17. OpenCV is used in this project to output the images and Libraw is used to read and parse the .ARW file. The minimum version of CMake is 3.0. To use the Libraw, we need to install the source code of Libraw, put it into the director "lib" in the project, then unzip it and compile it:
tar xzvf LibRaw-X.YY.tar.gz
cd LibRaw-X.YY
./configure
make
To run the progam, we need to run the compile_run.sh. The main function contain three parameters, they are input file path, output file path and tuning parameters file path. The parameters can be modified through the terminal or compile_run.sh.
- Dead Pixel Correction [✅]
- Black Level Compensation [✅]
- Lens Shading Correction [❌]
- Anti Aliasing Filter [✅]
- Auto White Balance Gain Control [✅]
- Chroma Noise Filtering [❌]
- Color Filter Array [✅]
- Gamma Correction [✅]
- Color Correction Matrix (p3 to sRGB) [✅]
- Edge Enhancement [✅]
- False Color Suppression [✅]
- Brightness Contrast Control [✅]
- Hue Saturation Control [✅]
- Local Tone Mapping [❌]