From 45a1bfd4d1326f8c270774682fb6f89b66b50e3a Mon Sep 17 00:00:00 2001 From: Ingo Date: Sun, 8 Sep 2013 19:19:45 +0200 Subject: [PATCH] corrects an error in Highlight Reconstruction/Colour Propagation, Issue 1965 --- rtengine/hilite_recon.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtengine/hilite_recon.cc b/rtengine/hilite_recon.cc index ea487bc9f..67e0a3028 100644 --- a/rtengine/hilite_recon.cc +++ b/rtengine/hilite_recon.cc @@ -171,7 +171,7 @@ void RawImageSource::boxblur2(float** src, float** dst, int H, int W, int box ) void RawImageSource::boxblur_resamp(float **src, float **dst, float & max_f, int H, int W, int box, int samp ) { - array2D temp(W/samp,H); + array2D temp((W/samp)+ ((W%samp)==0 ? 0 : 1),H); float maxtmp=0.0f; @@ -317,7 +317,7 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b //halfsize demosaic - multi_array2D hfsize (hfw,hfh,ARRAY2D_CLEAR_DATA); + multi_array2D hfsize (hfw+1,hfh+1,ARRAY2D_CLEAR_DATA); boxblur_resamp(red,hfsize[0],chmaxalt[0],height,width,range,pitch); if(plistener){ @@ -450,7 +450,7 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b for (int c=0; c<3; c++) channelblur[c](1,1);//free up some memory - multi_array2D hilite(hfw,hfh,ARRAY2D_CLEAR_DATA); + multi_array2D hilite(hfw+1,hfh+1,ARRAY2D_CLEAR_DATA); //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // blur and resample highlight data; range=size of blur, pitch=sample spacing