From 6d85d350397712bf166ca93a287878878f4c45ee Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 3 Oct 2016 22:05:02 +0200 Subject: [PATCH] Removed non-ASCII characters from code files, closes #3445 --- rtengine/EdgePreservingDecomposition.h | 87 +++++++++++++++----------- rtengine/boxblur.h | 2 +- rtengine/cache.h | 2 +- rtengine/camconst.json | 2 +- rtengine/colortemp.cc | 8 +-- rtengine/dirpyrLab_equalizer.cc | 2 +- rtengine/dirpyr_equalizer.cc | 2 +- rtengine/median.h | 2 +- rtengine/settings.h | 2 +- rtgui/dirpyrequalizer.cc | 2 +- rtgui/dirpyrequalizer.h | 2 +- 11 files changed, 65 insertions(+), 48 deletions(-) diff --git a/rtengine/EdgePreservingDecomposition.h b/rtengine/EdgePreservingDecomposition.h index 558caa5db..04ebfe3b6 100644 --- a/rtengine/EdgePreservingDecomposition.h +++ b/rtengine/EdgePreservingDecomposition.h @@ -1,47 +1,64 @@ #pragma once /* -The EdgePreservingDecomposition files contain standard C++ (standard except the first line) code for creating and, to a -limited extent (create your own uses!), messing with multi scale edge preserving decompositions of a 32 bit single channel -image. As a byproduct it contains a lot of linear algebra which can be useful for optimization problems that -you want to solve in rectangles on rectangular grids. +The EdgePreservingDecomposition files contain standard C++ (standard except the +first line) code for creating and, to a limited extent (create your own uses!), +messing with multi scale edge preserving decompositions of a 32 bit single +channel image. As a byproduct it contains a lot of linear algebra which can be +useful for optimization problems that you want to solve in rectangles on +rectangular grids. -Anyway. Basically, this is an implementation of what's presented in the following papers: - Edge-Preserving Decompositions for Multi-Scale Tone and Detail Manipulation - An Iterative Solution Method for Linear Systems of Which the Coefficient Matrix is a Symetric M-Matrix - Color correction for tone mapping - Wikipedia, the free encyclopedia +Anyway. Basically, this is an implementation of what's presented in the +following papers: +- Edge-Preserving Decompositions for Multi-Scale Tone and Detail Manipulation +- An Iterative Solution Method for Linear Systems of Which the Coefficient + Matrix is a Symetric M-Matrix +- Color correction for tone mapping +- Wikipedia, the free encyclopedia -First one is most of what matters, next two are details, last everything else. I did a few things differently, especially: - Reformulated the minimization with finite elements instead of finite differences. This results in better conditioning, - slightly better accuracy (less artifacts), the possibility of a better picked edge stopping function, but more memory consumption. - - A single rotationally invariant edge stopping function is used instead of two non-invariant ones. - - Incomplete Cholseky factorization instead of Szeliski's LAHBF. Slower, but not subject to any patents. - - For tone mapping, original images are decomposed instead of their logarithms, and just one decomposition is made; - I find that this way works plenty good (theirs isn't better or worse... just different) and is simpler. +First one is most of what matters, next two are details, last everything else. +I did a few things differently, especially: +- Reformulated the minimization with finite elements instead of finite + differences. This results in better conditioning, slightly better accuracy + (less artifacts), the possibility of a better picked edge stopping function, + but more memory consumption. +- A single rotationally invariant edge stopping function is used instead of two + non-invariant ones. +- Incomplete Cholseky factorization instead of Szeliski's LAHBF. Slower, but + not subject to any patents. +- For tone mapping, original images are decomposed instead of their logarithms, + and just one decomposition is made; +- I find that this way works plenty good (theirs isn't better or worse... just + different) and is simpler. Written by ben_pcc in Portland, Oregon, USA. Some history: - Late April 2010, I develop interest in this stuff because photos of my ceramics lack local contrast. - Mid 2010, it works but is too slow to be useful. - Fall 2010, various unsuccessful attempts at speeding up are tried. - Early December 2010, I get off the path of least resistance and write a matrix storage class with incomplete Cholesky decomposition. - 31 December 2010, the FEM reformulation works very well. - 1 January 2011, I'm cleaning up this file and readying it for initial release. - 12 - 14 November 2011, further cleanup, improvements, bug fixes, integration into Raw Therapee. +- Late April 2010, I develop interest in this stuff because photos of my + ceramics lack local contrast. +- Mid 2010, it works but is too slow to be useful. +- Fall 2010, various unsuccessful attempts at speeding up are tried. +- Early December 2010, I get off the path of least resistance and write a + matrix storage class with incomplete Cholesky decomposition. +- 31 December 2010, the FEM reformulation works very well. +- 1 January 2011, I'm cleaning up this file and readying it for initial release. +- 12 - 14 November 2011, further cleanup, improvements, bug fixes, integration + into Raw Therapee. -It's likely that I'll take apart and rerelease contents of this file (in the distant future) as most of it isn't edge preserving decomposition -and rather supporting material. SparseConjugateGradient alone is a workhorse I and a few others have been exploiting for a few years. +It's likely that I'll take apart and rerelease contents of this file (in the +distant future) as most of it isn't edge preserving decomposition and rather +supporting material. SparseConjugateGradient alone is a workhorse I and a few +others have been exploiting for a few years. -EdgePreservingDecomposition.h and EdgePreservingDecomposition.cpp are released under the following licence: - � It's free. - � You may not incorporate this code as part of proprietary or commercial software, but via freeware you may use its output for profit. - � You may modify and redistribute, but keep this big comment block intact and not for profit in any way unless I give specific permission. - � If you're unsure about anything else, treat as public domain. - � Don't be a dick. +EdgePreservingDecomposition.h and EdgePreservingDecomposition.cpp are released +under the following licence: +- It's free. +- You may not incorporate this code as part of proprietary or commercial + software, but via freeware you may use its output for profit. +- You may modify and redistribute, but keep this big comment block intact and + not for profit in any way unless I give specific permission. +- If you're unsure about anything else, treat as public domain. +- Don't be a dick. -My email address is my screen name followed by @yahoo.com. I'm also known as ben_s or nonbasketless. Enjoy! +My email address is my screen name followed by @yahoo.com. I'm also known as +ben_s or nonbasketless. Enjoy! */ diff --git a/rtengine/boxblur.h b/rtengine/boxblur.h index b360c3042..0fa31fc2a 100644 --- a/rtengine/boxblur.h +++ b/rtengine/boxblur.h @@ -1,7 +1,7 @@ /* * This file is part of RawTherapee. * - * Copyright © 2010 Emil Martinec + * Copyright (C) 2010 Emil Martinec * * RawTherapee is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/rtengine/cache.h b/rtengine/cache.h index 2e53aab2a..f14d7c6d9 100644 --- a/rtengine/cache.h +++ b/rtengine/cache.h @@ -1,7 +1,7 @@ /* * This file is part of RawTherapee. * - * Copyright (c) 2016 Flössie + * Copyright (C) 2016 Floessie * * RawTherapee is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/rtengine/camconst.json b/rtengine/camconst.json index bba957405..cf3e976ce 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1457,7 +1457,7 @@ Quality X: unknown, ie we knowing to little about the camera properties to know "ranges": { "black": 15, "white": 4050 } // 15 is BL offset. Dcraw/RT read the base offset from exif and calculates total BL = BLbase+BLoffset }, - { // Quality Β, + { // Quality B, "make_model": [ "Panasonic DMC-FZ300", "Panasonic DMC-FZ330" ], "dcraw_matrix": [ 8378,-2798,-769,-3068,11410,1877,-538,1792,4623 ], // DNG-V9.1.1 "ranges": { "black": 15, "white": 4050 } // 15 is BL offset. Dcraw/RT read the base offset from exif and calculates total BL = BLbase+BLoffset diff --git a/rtengine/colortemp.cc b/rtengine/colortemp.cc index 8d3847e79..7b271960d 100644 --- a/rtengine/colortemp.cc +++ b/rtengine/colortemp.cc @@ -34,7 +34,7 @@ namespace rtengine extern const Settings* settings; -static const double cie_colour_match_jd[97][3] = {//350nm to 830nm 5 nm J.Desmis observer 2� +static const double cie_colour_match_jd[97][3] = {//350nm to 830nm 5 nm J.Desmis 2 degree Standard Observer. {0.0000000, 0.000000, 0.000000}, {0.0000000, 0.000000, 0.000000}, {0.0001299, 0.0003917, 0.0006061}, {0.0002321, 0.000006965, 0.001086}, {0.0004149, 0.00001239, 0.001946}, {0.0007416, 0.00002202, 0.003846}, {0.001368, 0.000039, 0.006450001}, {0.002236, 0.000064, 0.01054999}, {0.004243, 0.000120, 0.02005001}, @@ -295,7 +295,7 @@ const double ColorTemp::Solux4100_spect[97] = { 62.40, 61.373, 59.75, 58.1810, 56.25, 54.395, 51.90, 49.496, 47.05, 44.620 }; -//spectral data for Solux lamp : near Daylight (for example "mus�e d'Orsay..") - 4700K +//spectral data for Solux lamp : near Daylight (for example "Musee d'Orsay") - 4700K const double ColorTemp::Solux4700_spect[97] = { 0.4590, 0.83, 1.2011, 1.53, 1.8647, 2.15, 2.5338, 3.06, 3.5809, 3.99, 4.4137, 4.82, 5.2228, 5.63, 6.0387, 6.53, 6.9944, 7.55, 8.0266, 8.475, 8.9276, 8.90, 9.7840, 10.20, 10.6390, 11.00, 11.3600, 11.75, 12.1340, 12.36, 12.5880, 12.74, 12.8790, 13.07, 13.2560, 13.38, 13.5220, 13.41, 13.3070, 13.35, 13.3990, 13.37, 13.3420, 13.39, 13.4220, 13.65, 13.2710, 13.25, 13.2330, 13.12, 13.0110, 12.93, 12.8470, 12.805, 12.7630, 12.66, 12.5760, 12.563, 12.5490, @@ -1797,7 +1797,7 @@ The next 3 methods are inspired from: this values are often called xBar yBar zBar and are characteristics of a color / illuminant -values cie_colour_match[][3] = Observer 2� x2, y2, z2 +values cie_colour_match[][3] = Observer 2 degree Standard Observer x2, y2, z2 E.g. for 380nm: x2=0.001368 y2=0.000039 z2=0.006451 round in J.Walker to 0.0014 0.0000 0.0065 above I have increase precision used by J.Walker and pass to 350nm to 830nm */ @@ -1855,7 +1855,7 @@ void ColorTemp::spectrum_to_xyz_preset(const double* spec_intens, double &x, dou this values are often called xBar yBar zBar and are characteristics of a color / illuminant - values cie_colour_match[][3] = Observer 2� x2, y2, z2 + values cie_colour_match[][3] = 2 degree Standard Observer x2, y2, z2 E.g. for 380nm: x2=0.001368 y2=0.000039 z2=0.006451 round in J.Walker to 0.0014 0.0000 0.0065 above I have increased the precision used by J.Walker and pass from 350nm to 830nm */ diff --git a/rtengine/dirpyrLab_equalizer.cc b/rtengine/dirpyrLab_equalizer.cc index 93a1b1ff1..fc5fc70a0 100644 --- a/rtengine/dirpyrLab_equalizer.cc +++ b/rtengine/dirpyrLab_equalizer.cc @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . * - * © 2010 Emil Martinec + * (C) 2010 Emil Martinec * */ diff --git a/rtengine/dirpyr_equalizer.cc b/rtengine/dirpyr_equalizer.cc index f82b7f8bf..a3a6d81b0 100644 --- a/rtengine/dirpyr_equalizer.cc +++ b/rtengine/dirpyr_equalizer.cc @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . * - * © 2010 Emil Martinec + * (C) 2010 Emil Martinec * */ diff --git a/rtengine/median.h b/rtengine/median.h index d7a6b37de..b30a9354e 100644 --- a/rtengine/median.h +++ b/rtengine/median.h @@ -16,7 +16,7 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . * - * These median implementations from Flössie and Ingo Weyrich are inspired by this work: + * These median implementations from Floessie and Ingo Weyrich are inspired by this work: * * http://ndevilla.free.fr/median/median.pdf * http://pages.ripco.net/~jgamble/nw.html diff --git a/rtengine/settings.h b/rtengine/settings.h index 4053a547f..8810322be 100644 --- a/rtengine/settings.h +++ b/rtengine/settings.h @@ -71,7 +71,7 @@ public: int nrwavlevel; bool daubech; bool ciebadpixgauss; - int CRI_color; // N� for display Lab value ; 0 disabled + int CRI_color; // Number for display Lab value; 0 = disabled int denoiselabgamma; // 0=gamma 26 11 1=gamma 40 5 2 =gamma 55 10 // double colortoningab; // // double decaction; diff --git a/rtgui/dirpyrequalizer.cc b/rtgui/dirpyrequalizer.cc index 7996a340e..53b4805ff 100644 --- a/rtgui/dirpyrequalizer.cc +++ b/rtgui/dirpyrequalizer.cc @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . * - * © 2010 Emil Martinec + * (C) 2010 Emil Martinec */ #include "dirpyrequalizer.h" diff --git a/rtgui/dirpyrequalizer.h b/rtgui/dirpyrequalizer.h index 9b806989c..d30e4d307 100644 --- a/rtgui/dirpyrequalizer.h +++ b/rtgui/dirpyrequalizer.h @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . * - * © 2010 Emil Martinec + * (C) 2010 Emil Martinec */ #ifndef DIRPYREQUALIZER_H_INCLUDED