Commit 35a39c19 authored by Alexander Shishkov's avatar Alexander Shishkov

minor changes

parent a29ce401
...@@ -99,7 +99,7 @@ CV_EXPORTS_W void makeHDR(InputArrayOfArrays srcImgs, const std::vector<float>& ...@@ -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, CV_EXPORTS_W void tonemap(InputArray src, OutputArray dst, int algorithm,
const std::vector<float>& params = std::vector<float>()); 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); CV_EXPORTS_W void shiftMat(InputArray src, Point shift, OutputArray dst);
......
...@@ -58,13 +58,13 @@ static void triangleWeights(float weights[]) ...@@ -58,13 +58,13 @@ static void triangleWeights(float weights[])
static void generateResponce(float responce[]) static void generateResponce(float responce[])
{ {
for(int i = 0; i < 256; i++) { for(int i = 1; i < 256; i++) {
responce[i] = log((float)i); responce[i] = logf((float)i);
} }
responce[0] = responce[1]; 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()) { if(images.empty()) {
CV_Error(Error::StsBadArg, "Need at least one image"); 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 ...@@ -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()); dst.resize(src.size());
...@@ -120,7 +120,7 @@ void makeHDR(InputArrayOfArrays _images, const std::vector<float>& _exp_times, O ...@@ -120,7 +120,7 @@ void makeHDR(InputArrayOfArrays _images, const std::vector<float>& _exp_times, O
} }
std::vector<float> exp_times(_exp_times.size()); std::vector<float> exp_times(_exp_times.size());
for(size_t i = 0; i < exp_times.size(); i++) { 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]; float weights[256], responce[256];
...@@ -144,7 +144,7 @@ void makeHDR(InputArrayOfArrays _images, const std::vector<float>& _exp_times, O ...@@ -144,7 +144,7 @@ void makeHDR(InputArrayOfArrays _images, const std::vector<float>& _exp_times, O
} }
} }
for(int channel = 0; channel < 3; channel++) { 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) { if(res_ptr[channel] > max) {
max = res_ptr[channel]; max = res_ptr[channel];
} }
...@@ -184,7 +184,7 @@ void exposureFusion(InputArrayOfArrays _images, OutputArray _dst, bool align, fl ...@@ -184,7 +184,7 @@ void exposureFusion(InputArrayOfArrays _images, OutputArray _dst, bool align, fl
pow(deviation, 2.0, deviation); pow(deviation, 2.0, deviation);
saturation += deviation; saturation += deviation;
} }
sqrt(saturation, saturation); sqrt(saturation, saturation);
wellexp = Mat::ones(gray.size(), CV_32FC1); wellexp = Mat::ones(gray.size(), CV_32FC1);
for(int i = 0; i < 3; i++) { for(int i = 0; i < 3; i++) {
...@@ -203,7 +203,7 @@ void exposureFusion(InputArrayOfArrays _images, OutputArray _dst, bool align, fl ...@@ -203,7 +203,7 @@ void exposureFusion(InputArrayOfArrays _images, OutputArray _dst, bool align, fl
weights[im] = weights[im].mul(wellexp); weights[im] = weights[im].mul(wellexp);
weight_sum += weights[im]; 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); std::vector<Mat> res_pyr(maxlevel + 1);
for(size_t im = 0; im < images.size(); im++) { for(size_t im = 0; im < images.size(); im++) {
...@@ -242,4 +242,4 @@ void exposureFusion(InputArrayOfArrays _images, OutputArray _dst, bool align, fl ...@@ -242,4 +242,4 @@ void exposureFusion(InputArrayOfArrays _images, OutputArray _dst, bool align, fl
res_pyr[0].copyTo(result); res_pyr[0].copyTo(result);
} }
}; };
\ No newline at end of file
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
// //
//M*/ //M*/
#include "precomp.hpp"
#include "opencv2/photo.hpp" #include "opencv2/photo.hpp"
#include "opencv2/imgproc.hpp" #include "opencv2/imgproc.hpp"
...@@ -52,8 +53,7 @@ static float getParam(const std::vector<float>& params, size_t i, float defval) ...@@ -52,8 +53,7 @@ static float getParam(const std::vector<float>& params, size_t i, float defval)
return params[i]; return params[i];
} else { } else {
return defval; return defval;
} }
} }
static void DragoMap(Mat& src_img, Mat &dst_img, const std::vector<float>& params) 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 ...@@ -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); cvtColor(src_img, gray_img, COLOR_RGB2GRAY);
Mat log_img; Mat log_img;
log(gray_img, 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; gray_img /= mean;
log_img.release(); log_img.release();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment