minor changes
authorAlexander Shishkov <alexander.shishkov@itseez.com>
Thu, 18 Jul 2013 21:08:42 +0000 (01:08 +0400)
committerAlexander Shishkov <alexander.shishkov@itseez.com>
Thu, 18 Jul 2013 21:08:42 +0000 (01:08 +0400)
modules/photo/include/opencv2/photo.hpp
modules/photo/src/hdr_fusion.cpp
modules/photo/src/tonemap.cpp

index b3d3aaf..d7fb9e5 100644 (file)
@@ -99,7 +99,7 @@ CV_EXPORTS_W void makeHDR(InputArrayOfArrays srcImgs, const std::vector<float>&
 CV_EXPORTS_W void tonemap(InputArray src, OutputArray dst, int algorithm,
                              const std::vector<float>& params = std::vector<float>());
 
-CV_EXPORTS_W void exposureFusion(InputArrayOfArrays srcImgs, OutputArray dst, bool align = false, float wc = 1, float ws = 1, float we = 0);
+CV_EXPORTS_W void exposureFusion(InputArrayOfArrays srcImgs, OutputArray dst, bool align = false, float wc = 1.0f, float ws = 1.0f, float we = 0.0f);
 
 CV_EXPORTS_W void shiftMat(InputArray src, Point shift, OutputArray dst);
 
index 5f2bf81..4db4b4e 100644 (file)
@@ -58,13 +58,13 @@ static void triangleWeights(float weights[])
 
 static void generateResponce(float responce[])
 {
-    for(int i = 0; i < 256; i++) {
-        responce[i] = log((float)i);
+    for(int i = 1; i < 256; i++) {
+        responce[i] = logf((float)i);
     }
     responce[0] = responce[1];
 }
 
-static void checkImages(std::vector<Mat>& images, bool hdr, const std::vector<float>& _exp_times = std::vector<float>())
+static void checkImages(const std::vector<Mat>& images, bool hdr, const std::vector<float>& _exp_times = std::vector<float>())
 {
        if(images.empty()) {
                CV_Error(Error::StsBadArg, "Need at least one image");
@@ -85,7 +85,7 @@ static void checkImages(std::vector<Mat>& images, bool hdr, const std::vector<fl
        }
 }
 
-static void alignImages(std::vector<Mat>& src, std::vector<Mat>& dst)
+static void alignImages(const std::vector<Mat>& src, std::vector<Mat>& dst)
 {
        dst.resize(src.size());
 
@@ -120,7 +120,7 @@ void makeHDR(InputArrayOfArrays _images, const std::vector<float>& _exp_times, O
        }
        std::vector<float> exp_times(_exp_times.size());
        for(size_t i = 0; i < exp_times.size(); i++) {
-               exp_times[i] = log(_exp_times[i]);
+        exp_times[i] = logf(_exp_times[i]);
        }
 
        float weights[256], responce[256];
@@ -144,7 +144,7 @@ void makeHDR(InputArrayOfArrays _images, const std::vector<float>& _exp_times, O
                        }
                }
                for(int channel = 0; channel < 3; channel++) {
-                       res_ptr[channel] = exp(sum[channel] / weight_sum);
+            res_ptr[channel] = expf(sum[channel] / weight_sum);
                        if(res_ptr[channel] > max) {
                                max = res_ptr[channel];
                        }
@@ -184,7 +184,7 @@ void exposureFusion(InputArrayOfArrays _images, OutputArray _dst, bool align, fl
                        pow(deviation, 2.0, deviation);
                        saturation += deviation;
                }
-               sqrt(saturation, saturation);
+        sqrt(saturation, saturation);
 
                wellexp = Mat::ones(gray.size(), CV_32FC1);
                for(int i = 0; i < 3; i++) {
@@ -203,7 +203,7 @@ void exposureFusion(InputArrayOfArrays _images, OutputArray _dst, bool align, fl
                weights[im] = weights[im].mul(wellexp);
                weight_sum += weights[im];
        }
-       int maxlevel = (int)(log((double)max(images[0].rows, images[0].cols)) / log(2.0)) - 1;
+    int maxlevel = static_cast<int>(logf(static_cast<float>(max(images[0].rows, images[0].cols))) / logf(2.0)) - 1;
        std::vector<Mat> res_pyr(maxlevel + 1);
 
        for(size_t im = 0; im < images.size(); im++) {
@@ -242,4 +242,4 @@ void exposureFusion(InputArrayOfArrays _images, OutputArray _dst, bool align, fl
        res_pyr[0].copyTo(result);
 }
 
-};
\ No newline at end of file
+};
index 1f05586..d0ec874 100644 (file)
@@ -40,6 +40,7 @@
 //
 //M*/
 
+#include "precomp.hpp"
 #include "opencv2/photo.hpp"
 #include "opencv2/imgproc.hpp"
 
@@ -52,8 +53,7 @@ static float getParam(const std::vector<float>& params, size_t i, float defval)
         return params[i];
     } else {
         return defval;
-    }
-        
+    }       
 }
 
 static void DragoMap(Mat& src_img, Mat &dst_img, const std::vector<float>& params)
@@ -63,7 +63,7 @@ static void DragoMap(Mat& src_img, Mat &dst_img, const std::vector<float>& param
     cvtColor(src_img, gray_img, COLOR_RGB2GRAY);
     Mat log_img;
     log(gray_img, log_img);
-    float mean = exp((float)sum(log_img)[0] / log_img.total());
+    float mean = expf(static_cast<float>(sum(log_img)[0]) / log_img.total());
     gray_img /= mean;
     log_img.release();