Thanks, I just tried it but didn't have time to do much. It sure looks better than anything before. Finding a proper curve is still something I need to do.
I also tried to build from source again but this time the program crashes. Tried to investigate but then my whole pc crashed. So more later.
I've got news on the crash. The assert in icclut.c line 97 fails. It happens with this command:
dcamprof make-icc -n nex5 -f auto_DSC04159_C11.tif -t tone-curve.json profile.json prelim-profile.icm
...
Interpolating out of gamut entries...assertion "max1 != 0" failed: file "icclut.c", line 97, function: cam_similarity
./doit.new: line 8: 5488 Aborted (core dumped) ../dcamprof make-icc -n 'nex5' -f auto_DSC04159_C11.tif -t tone-curve.json profile.json prelim-profile.icm
However, this only happens on 32bit Cygwin. If I compile it on a 64bit Cygwin installation the program works. The difference between 32bit and 64bit gcc is the different default for the -mfpmath option, which controls usage of the 80bit registers (google it for details). On 64bit the default is -mfpmath=sse and on 32bit it is -mfpmath=387 If I add -mfpmath=387 to the makefile and compile it on 64bit the program crashes there as well. The strange thing is I can't use -mfpmath=sse on 32bit. I suspect this to be a current Cygwin bug as I have used -mfpmath=sse in the past although with gfortran only. Simply compiling a helloWorld.c with -fpmath=sse immediately produces an error:
vega> gcc -mfpmath=sse hello.c
hello.c:1:0: warning: SSE instruction set disabled, using 387 arithmetics
#include <stdio.h>
^
So I can't produce a working dcamprof for 32bit Cygiwn at the moment. Disabling the assert is no option, you end up with NaNs if you do.
Anyway, no need to send me a binary or anything, I found the mingw compiled one in the other dcamprof thread which works just fine. And so does the 64bit Cygwin one. The results printed to the console are almost identical.
I just thought you might be interested in this result as I believe it might point to some numerical sensitivities in the code.
More on the actual profile in another reply later.