Commit 33e6c074 authored by siddharth's avatar siddharth

Removed build errors and removed test images

Removed conflict

Error fix 1

Error fix 2

Error fix 3

Error fix 3

Error fix 4

Error fix 5

Error fix 6

Error fix 7

Error fix 8

Error fix 9

Error fix 10

Error fix 11

Error fix 12

Errors fixed

Removed opencv_extra folder inside opencv folder
parent 2f65a0d4
...@@ -80,7 +80,7 @@ textureFlattening ...@@ -80,7 +80,7 @@ textureFlattening
By retaining only the gradients at edge locations, before integrating with the Poisson solver, one washes out the texture of the selected By retaining only the gradients at edge locations, before integrating with the Poisson solver, one washes out the texture of the selected
region, giving its contents a flat aspect. Here Canny Edge Detector is used. region, giving its contents a flat aspect. Here Canny Edge Detector is used.
.. ocv:function:: void textureFlattening(InputArray src, InputArray mask, OutputArray dst, double low_threshold, double high_threshold, int kernel_size) .. ocv:function:: void textureFlattening(InputArray src, InputArray mask, OutputArray dst, double low_threshold=30 , double high_threshold=45, int kernel_size=3)
:param src: Input 8-bit 3-channel image. :param src: Input 8-bit 3-channel image.
......
...@@ -72,18 +72,3 @@ Stylization aims to produce digital imagery with a wide variety of effects not f ...@@ -72,18 +72,3 @@ Stylization aims to produce digital imagery with a wide variety of effects not f
:param sigma_s: Range between 0 to 200. :param sigma_s: Range between 0 to 200.
:param sigma_r: Range between 0 to 1. :param sigma_r: Range between 0 to 1.
edgeEnhance
-----------
Able to suppress low-amplitude details and enhance edges.
.. ocv:function:: void edgeEnhance(InputArray src, OutputArray dst, float sigma_s = 60, float sigma_r = 0.45)
:param src: Input 8-bit 3-channel image.
:param dst: Output 8-bit 1-channel image.
:param sigma_s: Range between 0 to 200.
:param sigma_r: Range between 0 to 1.
This diff is collapsed.
...@@ -74,6 +74,13 @@ class Decolor ...@@ -74,6 +74,13 @@ class Decolor
void grayImContruct(vector <double> &wei, Mat img, Mat &Gray); void grayImContruct(vector <double> &wei, Mat img, Mat &Gray);
}; };
int round_num(double a);
int round_num(double a)
{
return int(a + 0.5);
}
double Decolor::energyCalcu(vector <double> &Cg, vector < vector <double> > &polyGrad, vector <double> &wei) double Decolor::energyCalcu(vector <double> &Cg, vector < vector <double> > &polyGrad, vector <double> &wei)
{ {
vector <double> energy; vector <double> energy;
...@@ -228,7 +235,7 @@ void Decolor::weak_order(Mat img, vector <double> &alf) ...@@ -228,7 +235,7 @@ void Decolor::weak_order(Mat img, vector <double> &alf)
if((h + w) > 800) if((h + w) > 800)
{ {
sizefactor = (double)800/(h+w); sizefactor = (double)800/(h+w);
resize(img,img,Size(round(h*sizefactor),round(w*sizefactor))); resize(img,img,Size(round_num(h*sizefactor),round_num(w*sizefactor)));
} }
Mat curIm = Mat(img.size(),CV_32FC1); Mat curIm = Mat(img.size(),CV_32FC1);
...@@ -304,7 +311,7 @@ void Decolor::grad_system(Mat img, vector < vector < double > > &polyGrad, ...@@ -304,7 +311,7 @@ void Decolor::grad_system(Mat img, vector < vector < double > > &polyGrad,
if((h + w) > 800) if((h + w) > 800)
{ {
sizefactor = (double)800/(h+w); sizefactor = (double)800/(h+w);
resize(img,img,Size(round(h*sizefactor),round(w*sizefactor))); resize(img,img,Size(round_num(h*sizefactor),round_num(w*sizefactor)));
} }
h = img.size().height; h = img.size().height;
......
...@@ -151,7 +151,6 @@ void cv::stylization(InputArray _src, OutputArray _dst, float sigma_s, float sig ...@@ -151,7 +151,6 @@ void cv::stylization(InputArray _src, OutputArray _dst, float sigma_s, float sig
int h = img.size().height; int h = img.size().height;
int w = img.size().width; int w = img.size().width;
int channel = img.channels();
Mat res = Mat(h,w,CV_32FC3); Mat res = Mat(h,w,CV_32FC3);
Mat magnitude = Mat(h,w,CV_32FC1); Mat magnitude = Mat(h,w,CV_32FC1);
...@@ -159,7 +158,7 @@ void cv::stylization(InputArray _src, OutputArray _dst, float sigma_s, float sig ...@@ -159,7 +158,7 @@ void cv::stylization(InputArray _src, OutputArray _dst, float sigma_s, float sig
Domain_Filter obj; Domain_Filter obj;
obj.filter(img, res, sigma_s, sigma_r, NORMCONV_FILTER); obj.filter(img, res, sigma_s, sigma_r, NORMCONV_FILTER);
obj.find_magnitude(res,magnitude,2); obj.find_magnitude(res,magnitude);
Mat stylized = Mat(h,w,CV_32FC3); Mat stylized = Mat(h,w,CV_32FC3);
...@@ -172,31 +171,3 @@ void cv::stylization(InputArray _src, OutputArray _dst, float sigma_s, float sig ...@@ -172,31 +171,3 @@ void cv::stylization(InputArray _src, OutputArray _dst, float sigma_s, float sig
stylized.convertTo(dst,CV_8UC3,255); stylized.convertTo(dst,CV_8UC3,255);
} }
void cv::edgeEnhance(InputArray _src, OutputArray _dst, float sigma_s, float sigma_r)
{
Mat I = _src.getMat();
_dst.create(I.size(), CV_8UC1);
Mat dst = _dst.getMat();
Mat img = Mat(I.size(),CV_32FC3);
I.convertTo(img,CV_32FC3,1.0/255.0);
Mat orig = img.clone();
int h = img.size().height;
int w = img.size().width;
Mat res = Mat(h,w,CV_32FC3);
Mat magnitude = Mat(h,w,CV_32FC1);
Mat mag8 = Mat(h,w,CV_32FC1);
Domain_Filter obj;
obj.filter(img, res, sigma_s, sigma_r, NORMCONV_FILTER);
obj.find_magnitude(res,magnitude,1);
magnitude.convertTo(dst,CV_8UC1,255);
}
...@@ -61,7 +61,7 @@ class Domain_Filter ...@@ -61,7 +61,7 @@ class Domain_Filter
void getGradienty( const Mat &img, Mat &gy); void getGradienty( const Mat &img, Mat &gy);
void diffx(const Mat &img, Mat &temp); void diffx(const Mat &img, Mat &temp);
void diffy(const Mat &img, Mat &temp); void diffy(const Mat &img, Mat &temp);
void find_magnitude(Mat &img, Mat &mag, int flags); void find_magnitude(Mat &img, Mat &mag);
void compute_boxfilter(Mat &output, Mat &hz, Mat &psketch, float radius); void compute_boxfilter(Mat &output, Mat &hz, Mat &psketch, float radius);
void compute_Rfilter(Mat &O, Mat &horiz, float sigma_h); void compute_Rfilter(Mat &O, Mat &horiz, float sigma_h);
void compute_NCfilter(Mat &O, Mat &horiz, Mat &psketch, float radius); void compute_NCfilter(Mat &O, Mat &horiz, Mat &psketch, float radius);
...@@ -131,7 +131,7 @@ void Domain_Filter::getGradienty( const Mat &img, Mat &gy) ...@@ -131,7 +131,7 @@ void Domain_Filter::getGradienty( const Mat &img, Mat &gy)
} }
} }
void Domain_Filter::find_magnitude(Mat &img, Mat &mag, int flags) void Domain_Filter::find_magnitude(Mat &img, Mat &mag)
{ {
int h = img.rows; int h = img.rows;
int w = img.cols; int w = img.cols;
...@@ -148,28 +148,14 @@ void Domain_Filter::find_magnitude(Mat &img, Mat &mag, int flags) ...@@ -148,28 +148,14 @@ void Domain_Filter::find_magnitude(Mat &img, Mat &mag, int flags)
Mat magXB = Mat(h, w, CV_32FC1); Mat magXB = Mat(h, w, CV_32FC1);
Mat magYB = Mat(h, w, CV_32FC1); Mat magYB = Mat(h, w, CV_32FC1);
if(flags == 1) Sobel(planes[0], magXR, CV_32FC1, 1, 0, 3);
{ Sobel(planes[0], magYR, CV_32FC1, 0, 1, 3);
getGradientx(planes[0], magXR);
getGradienty(planes[0], magYR);
getGradientx(planes[1], magXG);
getGradienty(planes[1], magYG);
getGradientx(planes[2], magXR);
getGradienty(planes[2], magYR);
}
else if(flags == 2)
{
Sobel(planes[0], magXR, CV_32FC1, 1, 0, 3);
Sobel(planes[0], magYR, CV_32FC1, 0, 1, 3);
Sobel(planes[1], magXG, CV_32FC1, 1, 0, 3); Sobel(planes[1], magXG, CV_32FC1, 1, 0, 3);
Sobel(planes[1], magYG, CV_32FC1, 0, 1, 3); Sobel(planes[1], magYG, CV_32FC1, 0, 1, 3);
Sobel(planes[2], magXB, CV_32FC1, 1, 0, 3); Sobel(planes[2], magXB, CV_32FC1, 1, 0, 3);
Sobel(planes[2], magYB, CV_32FC1, 0, 1, 3); Sobel(planes[2], magYB, CV_32FC1, 0, 1, 3);
}
Mat mag1 = Mat(h,w,CV_32FC1); Mat mag1 = Mat(h,w,CV_32FC1);
Mat mag2 = Mat(h,w,CV_32FC1); Mat mag2 = Mat(h,w,CV_32FC1);
......
...@@ -128,19 +128,3 @@ TEST(Photo_NPR_Stylization, regression) ...@@ -128,19 +128,3 @@ TEST(Photo_NPR_Stylization, regression)
imwrite(folder + "stylized.png", result); imwrite(folder + "stylized.png", result);
} }
TEST(Photo_NPR_EdgeEnhance, regression)
{
string folder = string(cvtest::TS::ptr()->get_data_path()) + "npr/";
string original_path = folder + "test1.png";
Mat source = imread(original_path, IMREAD_COLOR);
ASSERT_FALSE(source.empty()) << "Could not load input image " << original_path;
Mat result;
edgeEnhance(source,result);
imwrite(folder + "edge_enhanced.png", result);
}
...@@ -43,7 +43,7 @@ int main() ...@@ -43,7 +43,7 @@ int main()
cout << "6) Texture Flattening " << endl; cout << "6) Texture Flattening " << endl;
cout << endl; cout << endl;
cout << "Press number 1-6 to choose from above techniques: "; cout << "Press number 1-6 to choose from above techniques: ";
int num; int num = 1;
cin >> num; cin >> num;
cout << endl; cout << endl;
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
* 2) Detail Enhancement * 2) Detail Enhancement
* 3) Pencil sketch/Color Pencil Drawing * 3) Pencil sketch/Color Pencil Drawing
* 4) Stylization * 4) Stylization
* 5) Edge Enhancement
* *
*/ */
...@@ -57,10 +56,9 @@ int main(int argc, char* argv[]) ...@@ -57,10 +56,9 @@ int main(int argc, char* argv[])
cout << "2) Detail Enhancement" << endl; cout << "2) Detail Enhancement" << endl;
cout << "3) Pencil sketch/Color Pencil Drawing" << endl; cout << "3) Pencil sketch/Color Pencil Drawing" << endl;
cout << "4) Stylization" << endl; cout << "4) Stylization" << endl;
cout << "5) Edge Enhancement" << endl;
cout << endl; cout << endl;
cout << "Press number 1-5 to choose from above techniques: "; cout << "Press number 1-4 to choose from above techniques: ";
cin >> num; cin >> num;
...@@ -94,11 +92,5 @@ int main(int argc, char* argv[]) ...@@ -94,11 +92,5 @@ int main(int argc, char* argv[])
stylization(I,img); stylization(I,img);
imshow("Stylization",img); imshow("Stylization",img);
} }
else if(num == 5)
{
edgeEnhance(I,img);
imshow("Edge Enhance",img);
}
waitKey(0); waitKey(0);
} }
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