hi! oh, nice, thanks for looking into this!
i can't parse your diff, it has so many white space changes. could you maybe fix it or explain what it does? is it just a special case for the zero-patch case? yeah the solver sucks. unfortunately eigen is written in c++, so i'm hesitant to pull it in as a dependency. cheers, jo On Fri, Jul 28, 2017 at 9:24 PM, Heiko Bauke <heiko.ba...@mail.de> wrote: > Dear Johannes, > > Am 12.07.2017 um 10:06 schrieb johannes hanika: >> >> sounds weird, will try to reproduce. the fitting of this function is >> using a spline, which may be prone to ringing, in between the colours >> you fixed. it has a linear part that fixes this issue for purely b/w, >> but may lead to issues for b/w + single colour. > > > I investigated this issue in more detail. There are two problems with the > color look up module. > > * The module does not deal properly with the border case that the user has > removed all color fields from the UI. In this case no color mappings are > defined. Thus the module should not alter the image. This has been fixed > in https://github.com/rabauke/darktable/tree/fix_colorchecker > > * In constructing the color mapping three linear systems of equations have > to be solved with the same coefficient matrix but with different right hand > sides (one system for each Lab color channel). In the case, that all target > color are identical to their source colors, these systems have the trivial > solutions > > [0, ..., 0, 1, 0, 0] for L-channel, > [0, ..., 0, 0, 1, 0] for a-channel, > [0, ..., 0, 0, 0, 1] for b-channel, > > which establish an identity mapping between source and target image. This > has been described by you in more detail in > http://www.darktable.org/2016/05/colour-manipulation-with-the-colour-checker-lut-module/ > The problem is that if there are only few (in particular less than four) > source colors or if many target/source colors have vanishing Lab-channels > (e.g. shades of gray) the coefficient matrix may become (close to) singular > and the system may have non-unique solutions. In this case the implemented > singular-value-decomposition-based solver as implemented in the color look > up table module gives a solution, which is not even close to the solutions > mentioned above. > > I think one should modify the linear system solver to ensure that it always > yields the vectors given above if these are valid solutions to the linear > system. In the case that these are not valid solutions (e.g. because source > and target colors differ) but the system has non-unique solutions the solver > should yield valid solutions which are close as possible to the vectors > given above. > > > > Heiko > > > -- > -- Number Crunch Blog @ https://www.numbercrunch.de > -- Cluster Computing @ http://www.clustercomputing.de > -- Professional @ https://www.mpi-hd.mpg.de/personalhomes/bauke > -- Social Networking @ https://www.researchgate.net/profile/Heiko_Bauke > ___________________________________________________________________________ > darktable developer mailing list > to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org > ___________________________________________________________________________ darktable developer mailing list to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org