Merge branch 'dev' into newlocallab
This commit is contained in:
@@ -18,13 +18,20 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include <cstddef>
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
#include "improcfun.h"
|
||||
#include <cstddef>
|
||||
|
||||
#include "array2D.h"
|
||||
#include "rt_math.h"
|
||||
#include "cieimage.h"
|
||||
#include "color.h"
|
||||
#include "curves.h"
|
||||
#include "improcfun.h"
|
||||
#include "LUT.h"
|
||||
#include "opthelper.h"
|
||||
#include "boxblur.h"
|
||||
#include "rt_math.h"
|
||||
#include "settings.h"
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -73,8 +80,8 @@ void dirpyr_channel(const float * const * data_fine, float ** data_coarse, int w
|
||||
float val = 0.f;
|
||||
float norm = 0.f;
|
||||
|
||||
for (int inbr = max(0, i - scalewin); inbr <= min(height - 1, i + scalewin); inbr += scale) {
|
||||
for (int jnbr = max(0, j - scalewin); jnbr <= j + scalewin; jnbr += scale) {
|
||||
for (int inbr = std::max(0, i - scalewin); inbr <= std::min(height - 1, i + scalewin); inbr += scale) {
|
||||
for (int jnbr = std::max(0, j - scalewin); jnbr <= j + scalewin; jnbr += scale) {
|
||||
const float dirwt = domker[(inbr - i) / scale + halfwin][(jnbr - j)/ scale + halfwin] * rangeFn(fabsf(data_fine[inbr][jnbr] - data_fine[i][j]));
|
||||
val += dirwt * data_fine[inbr][jnbr];
|
||||
norm += dirwt;
|
||||
@@ -107,7 +114,7 @@ void dirpyr_channel(const float * const * data_fine, float ** data_coarse, int w
|
||||
float val = 0.f;
|
||||
float norm = 0.f;
|
||||
|
||||
for (int inbr = max(0, i - scalewin); inbr <= min(height - 1, i + scalewin); inbr += scale) {
|
||||
for (int inbr = std::max(0, i - scalewin); inbr <= std::min(height - 1, i + scalewin); inbr += scale) {
|
||||
for (int jnbr = j - scalewin; jnbr <= j + scalewin; jnbr += scale) {
|
||||
const float dirwt = domker[(inbr - i) / scale + halfwin][(jnbr - j)/ scale + halfwin] * rangeFn(fabsf(data_fine[inbr][jnbr] - data_fine[i][j]));
|
||||
val += dirwt * data_fine[inbr][jnbr];
|
||||
@@ -121,8 +128,8 @@ void dirpyr_channel(const float * const * data_fine, float ** data_coarse, int w
|
||||
float val = 0.f;
|
||||
float norm = 0.f;
|
||||
|
||||
for (int inbr = max(0, i - scalewin); inbr <= min(height - 1, i + scalewin); inbr += scale) {
|
||||
for (int jnbr = j - scalewin; jnbr <= min(width - 1, j + scalewin); jnbr += scale) {
|
||||
for (int inbr = std::max(0, i - scalewin); inbr <= std::min(height - 1, i + scalewin); inbr += scale) {
|
||||
for (int jnbr = j - scalewin; jnbr <= std::min(width - 1, j + scalewin); jnbr += scale) {
|
||||
const float dirwt = domker[(inbr - i) / scale + halfwin][(jnbr - j)/ scale + halfwin] * rangeFn(fabsf(data_fine[inbr][jnbr] - data_fine[i][j]));
|
||||
val += dirwt * data_fine[inbr][jnbr];
|
||||
norm += dirwt;
|
||||
@@ -151,8 +158,8 @@ void dirpyr_channel(const float * const * data_fine, float ** data_coarse, int w
|
||||
float val = 0.f;
|
||||
float norm = 0.f;
|
||||
|
||||
for (int inbr = max(0, i - scale); inbr <= min(height - 1, i + scale); inbr += scale) {
|
||||
for (int jnbr = max(0, j - scale); jnbr <= j + scale; jnbr += scale) {
|
||||
for (int inbr = std::max(0, i - scale); inbr <= std::min(height - 1, i + scale); inbr += scale) {
|
||||
for (int jnbr = std::max(0, j - scale); jnbr <= j + scale; jnbr += scale) {
|
||||
const float dirwt = rangeFn(fabsf(data_fine[inbr][jnbr] - data_fine[i][j]));
|
||||
val += dirwt * data_fine[inbr][jnbr];
|
||||
norm += dirwt;
|
||||
@@ -184,7 +191,7 @@ void dirpyr_channel(const float * const * data_fine, float ** data_coarse, int w
|
||||
float val = 0.f;
|
||||
float norm = 0.f;
|
||||
|
||||
for (int inbr = max(0, i - scale); inbr <= min(height - 1, i + scale); inbr += scale) {
|
||||
for (int inbr = std::max(0, i - scale); inbr <= std::min(height - 1, i + scale); inbr += scale) {
|
||||
for (int jnbr = j - scale; jnbr <= j + scale; jnbr += scale) {
|
||||
const float dirwt = rangeFn(fabsf(data_fine[inbr][jnbr] - data_fine[i][j]));
|
||||
val += dirwt * data_fine[inbr][jnbr];
|
||||
@@ -198,8 +205,8 @@ void dirpyr_channel(const float * const * data_fine, float ** data_coarse, int w
|
||||
float val = 0.f;
|
||||
float norm = 0.f;
|
||||
|
||||
for (int inbr = max(0, i - scale); inbr <= min(height - 1, i + scale); inbr += scale) {
|
||||
for (int jnbr = j - scale; jnbr <= min(width - 1, j + scale); jnbr += scale) {
|
||||
for (int inbr = std::max(0, i - scale); inbr <= std::min(height - 1, i + scale); inbr += scale) {
|
||||
for (int jnbr = j - scale; jnbr <= std::min(width - 1, j + scale); jnbr += scale) {
|
||||
const float dirwt = rangeFn(fabsf(data_fine[inbr][jnbr] - data_fine[i][j]));
|
||||
val += dirwt * data_fine[inbr][jnbr];
|
||||
norm += dirwt;
|
||||
@@ -390,8 +397,6 @@ void idirpyr_eq_channelcam(const float * const * data_coarse, const float * cons
|
||||
namespace rtengine
|
||||
{
|
||||
|
||||
extern const Settings* settings;
|
||||
|
||||
void ImProcFunctions::dirpyr_equalizer(const float * const * src, float ** dst, int srcwidth, int srcheight, const float * const * l_a, const float * const * l_b, const double * mult, const double dirpyrThreshold, const double skinprot, float b_l, float t_l, float t_r, int scaleprev)
|
||||
{
|
||||
//sequence of scales
|
||||
|
Reference in New Issue
Block a user