Commit e8c2f2ee authored by Adrien BAK's avatar Adrien BAK Committed by Adrien BAK

constness

parent 2f046ae8
...@@ -50,9 +50,9 @@ using namespace cv; ...@@ -50,9 +50,9 @@ using namespace cv;
void cv::seamlessClone(InputArray _src, InputArray _dst, InputArray _mask, Point p, OutputArray _blend, int flags) void cv::seamlessClone(InputArray _src, InputArray _dst, InputArray _mask, Point p, OutputArray _blend, int flags)
{ {
Mat src = _src.getMat(); const Mat src = _src.getMat();
Mat dest = _dst.getMat(); const Mat dest = _dst.getMat();
Mat mask = _mask.getMat(); const Mat mask = _mask.getMat();
_blend.create(dest.size(), CV_8UC3); _blend.create(dest.size(), CV_8UC3);
Mat blend = _blend.getMat(); Mat blend = _blend.getMat();
......
...@@ -51,17 +51,22 @@ using namespace cv; ...@@ -51,17 +51,22 @@ using namespace cv;
class Cloning class Cloning
{ {
public: public:
void normal_clone(const Mat &I, const Mat &mask, const Mat &wmask, Mat &cloned, int num);
void illum_change(Mat &I, Mat &mask, Mat &wmask, Mat &cloned, float alpha, float beta);
void local_color_change(Mat &I, Mat &mask, Mat &wmask, Mat &cloned, float red_mul, float green_mul, float blue_mul);
void texture_flatten(Mat &I, Mat &mask, Mat &wmask, double low_threshold, double high_threhold, int kernel_size, Mat &cloned);
protected:
vector <Mat> rgb_channel, rgbx_channel, rgby_channel, output; vector <Mat> rgb_channel, rgbx_channel, rgby_channel, output;
Mat grx, gry, sgx, sgy, srx32, sry32, grx32, gry32, smask, smask1; Mat grx, gry, sgx, sgy, srx32, sry32, grx32, gry32, smask, smask1;
void init_var(Mat &I, Mat &wmask); void init_var(const Mat &I, const Mat &wmask);
void initialization(Mat &I, Mat &mask, Mat &wmask); void initialization(const Mat &I, const Mat &mask, const Mat &wmask);
void scalar_product(Mat mat, float r, float g, float b); void scalar_product(Mat mat, float r, float g, float b);
void array_product(Mat mat1, Mat mat2, Mat mat3); void array_product(Mat mat1, Mat mat2, Mat mat3);
void poisson(Mat &I, Mat &gx, Mat &gy, Mat &sx, Mat &sy); void poisson(const Mat &I, const Mat &gx, const Mat &gy, const Mat &sx, const Mat &sy);
void evaluate(Mat &I, Mat &wmask, Mat &cloned); void evaluate(const Mat &I, const Mat &wmask, const Mat &cloned);
void getGradientx(const Mat &img, Mat &gx); void getGradientx(const Mat &img, Mat &gx);
void getGradienty(const Mat &img, Mat &gy); void getGradienty(const Mat &img, Mat &gy);
void lapx(const Mat &img, Mat &gxx); void lapx(const Mat &img, Mat &gxx);
...@@ -71,10 +76,10 @@ class Cloning ...@@ -71,10 +76,10 @@ class Cloning
void transpose(double *mat, double *mat_t,int h,int w); void transpose(double *mat, double *mat_t,int h,int w);
void solve(const Mat &img, double *mod_diff, Mat &result); void solve(const Mat &img, double *mod_diff, Mat &result);
void poisson_solver(const Mat &img, Mat &gxx , Mat &gyy, Mat &result); void poisson_solver(const Mat &img, Mat &gxx , Mat &gyy, Mat &result);
void normal_clone(Mat &I, Mat &mask, Mat &wmask, Mat &cloned, int num);
void local_color_change(Mat &I, Mat &mask, Mat &wmask, Mat &cloned, float red_mul, float green_mul, float blue_mul);
void illum_change(Mat &I, Mat &mask, Mat &wmask, Mat &cloned, float alpha, float beta);
void texture_flatten(Mat &I, Mat &mask, Mat &wmask, double low_threshold, double high_threhold, int kernel_size, Mat &cloned);
}; };
void Cloning::getGradientx( const Mat &img, Mat &gx) void Cloning::getGradientx( const Mat &img, Mat &gx)
...@@ -352,7 +357,7 @@ void Cloning::poisson_solver(const Mat &img, Mat &gxx , Mat &gyy, Mat &result) ...@@ -352,7 +357,7 @@ void Cloning::poisson_solver(const Mat &img, Mat &gxx , Mat &gyy, Mat &result)
delete [] boundary_point; delete [] boundary_point;
} }
void Cloning::init_var(Mat &I, Mat &wmask) void Cloning::init_var(const Mat &I, const Mat &wmask)
{ {
grx = Mat(I.size(),CV_32FC3); grx = Mat(I.size(),CV_32FC3);
gry = Mat(I.size(),CV_32FC3); gry = Mat(I.size(),CV_32FC3);
...@@ -369,7 +374,7 @@ void Cloning::init_var(Mat &I, Mat &wmask) ...@@ -369,7 +374,7 @@ void Cloning::init_var(Mat &I, Mat &wmask)
gry32 = Mat(I.size(),CV_32FC3); gry32 = Mat(I.size(),CV_32FC3);
} }
void Cloning::initialization(Mat &I, Mat &mask, Mat &wmask) void Cloning::initialization(const Mat &I, const Mat &mask, const Mat &wmask)
{ {
init_var(I,wmask); init_var(I,wmask);
...@@ -411,7 +416,7 @@ void Cloning::array_product(Mat mat1, Mat mat2, Mat mat3) ...@@ -411,7 +416,7 @@ void Cloning::array_product(Mat mat1, Mat mat2, Mat mat3)
merge(channels_temp1,mat1); merge(channels_temp1,mat1);
} }
void Cloning::poisson(Mat &I, Mat &gx, Mat &gy, Mat &sx, Mat &sy) void Cloning::poisson(const Mat &I, const Mat &gx, const Mat &gy, const Mat &sx, const Mat &sy)
{ {
Mat fx = Mat(I.size(),CV_32FC3); Mat fx = Mat(I.size(),CV_32FC3);
Mat fy = Mat(I.size(),CV_32FC3); Mat fy = Mat(I.size(),CV_32FC3);
...@@ -435,7 +440,7 @@ void Cloning::poisson(Mat &I, Mat &gx, Mat &gy, Mat &sx, Mat &sy) ...@@ -435,7 +440,7 @@ void Cloning::poisson(Mat &I, Mat &gx, Mat &gy, Mat &sx, Mat &sy)
poisson_solver(rgb_channel[0],rgbx_channel[0], rgby_channel[0],output[0]); poisson_solver(rgb_channel[0],rgbx_channel[0], rgby_channel[0],output[0]);
} }
void Cloning::evaluate(Mat &I, Mat &wmask, Mat &cloned) void Cloning::evaluate(const Mat &I, const Mat &wmask, const Mat &cloned)
{ {
bitwise_not(wmask,wmask); bitwise_not(wmask,wmask);
...@@ -451,7 +456,7 @@ void Cloning::evaluate(Mat &I, Mat &wmask, Mat &cloned) ...@@ -451,7 +456,7 @@ void Cloning::evaluate(Mat &I, Mat &wmask, Mat &cloned)
merge(output,cloned); merge(output,cloned);
} }
void Cloning::normal_clone(Mat &I, Mat &mask, Mat &wmask, Mat &cloned, int num) void Cloning::normal_clone(const Mat &I, const Mat &mask, const Mat &wmask, Mat &cloned, int num)
{ {
int w = I.size().width; int w = I.size().width;
int h = I.size().height; int h = I.size().height;
......
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