Giter Site home page Giter Site logo

beep6581 / dcamprof Goto Github PK

View Code? Open in Web Editor NEW
50.0 50.0 13.0 4.6 MB

DCamProf is a free and open-source command line tool for making camera profiles, and performing tasks related to camera profiles and profiling.

License: GNU General Public License v3.0

Makefile 0.01% C 92.98% HTML 7.01%

dcamprof's People

Contributors

beep6581 avatar butcherg avatar heckflosse avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dcamprof's Issues

Update to DNG SDK 1.6

DNG SDK 1.6 was released by Adobe in December 2021. It brings several features, most notable being support for a third illuminant:

ADDITIONAL TAGS FOR VERSION 1.6.0.0

PROFILEGAINTABLEMAP

SEMANTICNAME

SEMANTICINSTANCEID

MASKSUBAREA

RGBTABLES

CALIBRATIONILLUMINANT3

COLORMATRIX3

CAMERACALIBRATION3

REDUCTIONMATRIX3

PROFILEHUESATMAPDATA3

FORWARDMATRIX3

ILLUMINANTDATA1

ILLUMINANTDATA2

ILLUMINANTDATA3

Is there any chance of an update (to dcamprof and Lumariver PD) to fully support 1.6?

SSF profiles in photon units (QE) or radiometric units?

I understand that absolute units are not needed to generate a color profile, but there is still a big difference between the two for this application.

Quantum efficiency (QE) just considers the conversion efficiency of a photon into a photoelectron. On the other hand, Radiometric units consider the actual energy carried by a photon at a specific wavelength, with short wave photons carrying more energy than those at long wavelengths.

Here is an example of the difference from the CMV-20000 sensor datasheet :

Notably, this changes not only the relative scaling between the filters, but also affects the location of the response peak, accentuating longer wavelengths.
More information about the difference: https://scientificimaging.com/knowledge-base/quantum-efficiency-spec-res/

Since DCamProf is using relative units, converting between QE and radiometric spectral response should be as easy as multiplying the QE with the wavelength.

I have seen both getting referred to as the spectral response of a sensor in documents, so I'm not sure which one is the correct one to be used with DCamProf.
This isn't specified anywhere in the documentation yet.

about M1 MacOS X compilation guidelines

Hi,

(compilation newbie, here)

On my M1 mac, I've been trying to compile dcamprof

Here's what I came up with (note my non-existant knowledge about compilation flags in general and about M1 arm64 compilation subtleties in particular).

export CC="$(which clang)"
export CPPFLAGS="$CPPFLAGS -Xpreprocessor -fopenmp"
export CFLAGS="-Wall -std=c99 -g -O2 -D_XOPEN_SOURCE=600 -D__EXTENSIONS__ -fopenmp"
export CFLAGS="$CFLAGS -I$(brew --prefix libomp)/include -I$(brew --prefix little-cms2)/include -I$(brew --prefix libtiff)/include $OPTFLAGS"
export LDFLAGS="$LDFLAGS -Wl,-rpath,$(brew --prefix libomp)/lib -L$(brew --prefix libomp)/lib -lomp -L$(brew --prefix little-cms2)/lib -llcms2 -L$(brew --prefix libtiff)/lib -ltiff"

then, from inside the dcamprof/src folder, where the Makefile lies, I:

  • comment out the same flags I’ve just exported in bash,
  • run make
unfold sample output
/usr/bin/clang -o dcamprof.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" dcamprof.c
/usr/bin/clang -o nmsimplex.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" nmsimplex.c
/usr/bin/clang -o profio.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" profio.c
/usr/bin/clang -o argyllio.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" argyllio.c
/usr/bin/clang -o tps.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" tps.c
/usr/bin/clang -o colmath.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" colmath.c
/usr/bin/clang -o matopt.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" matopt.c
/usr/bin/clang -o lut.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" lut.c
/usr/bin/clang -o lut3d.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" lut3d.c
/usr/bin/clang -o look.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" look.c
/usr/bin/clang -o dngref.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" dngref.c
/usr/bin/clang -o gamut.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" gamut.c
/usr/bin/clang -o spectrum.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" spectrum.c
/usr/bin/clang -o jsonio.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" jsonio.c
/usr/bin/clang -o cJSON.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" cJSON.c
/usr/bin/clang -o interp.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" interp.c
/usr/bin/clang -o bisection.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" bisection.c
/usr/bin/clang -o icclut.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" icclut.c
/usr/bin/clang -o dnglut.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" dnglut.c
/usr/bin/clang -o glare.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" glare.c
/usr/bin/clang -o target.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" target.c
/usr/bin/clang -o xyz2spec.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" xyz2spec.c
/usr/bin/clang -o observers.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" observers.c
/usr/bin/clang -o spectraldb.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" spectraldb.c
/usr/bin/clang -o tifio.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" tifio.c
tifio.c:329:22: warning: 'uint8' is deprecated [-Wdeprecated-declarations]
        static const uint8 prophoto_icc[] =
                     ^
/opt/homebrew/opt/libtiff/include/tiff.h:78:45: note: 'uint8' has been explicitly marked deprecated here
typedef TIFF_MSC_DEPRECATED uint8_t  uint8  TIFF_GCC_DEPRECATED;
                                            ^
/opt/homebrew/opt/libtiff/include/tiff.h:66:44: note: expanded from macro 'TIFF_GCC_DEPRECATED'
#define TIFF_GCC_DEPRECATED __attribute__((deprecated))
                                           ^
1 warning generated.
/usr/bin/clang -o elog.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" elog.c
/usr/bin/clang -o wcompat.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" wcompat.c
/usr/bin/clang -o strbuf.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" strbuf.c
/usr/bin/clang -o spectraldb_munsell.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" spectraldb_munsell.c
/usr/bin/clang -o spectraldb_cc24.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" spectraldb_cc24.c
/usr/bin/clang -o spectraldb_kuopio_natural.o -c -I.  -I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/little-cms2/include -I/opt/homebrew/opt/libtiff/include   -DDCAMPROF_VERSION=\"1.0.6\" spectraldb_kuopio_natural.c
/usr/bin/clang -o dcamprof  -Wl,-rpath,/opt/homebrew/opt/libomp/lib -L/opt/homebrew/opt/libomp/lib -lomp -L/opt/homebrew/opt/little-cms2/lib -llcms2 -L/opt/homebrew/opt/libtiff/lib -ltiff dcamprof.o nmsimplex.o profio.o argyllio.o tps.o colmath.o matopt.o lut.o lut3d.o look.o dngref.o gamut.o spectrum.o jsonio.o cJSON.o interp.o bisection.o icclut.o dnglut.o glare.o target.o xyz2spec.o observers.o spectraldb.o tifio.o elog.o wcompat.o strbuf.o spectraldb_munsell.o spectraldb_cc24.o spectraldb_kuopio_natural.o -llcms2 -ltiff -lm

Here's the thread in pixls.us: https://discuss.pixls.us/t/solved-dcamprof-compilation-for-m1-mac-arm64/30295/8

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.