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
This commit is contained in:
siddharth 2013-10-21 19:54:32 +05:30
parent 2f65a0d4ba
commit 33e6c07485
9 changed files with 171 additions and 249 deletions

View File

@ -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.

View File

@ -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.

View File

@ -328,9 +328,6 @@ CV_EXPORTS_W Ptr<MergeRobertson> createMergeRobertson();
CV_EXPORTS_W void stylization(InputArray src, OutputArray dst, float sigma_s = 60, CV_EXPORTS_W void stylization(InputArray src, OutputArray dst, float sigma_s = 60,
float sigma_r = 0.45); float sigma_r = 0.45);
CV_EXPORTS_W void edgeEnhance(InputArray src, OutputArray dst, float sigma_s = 60,
float sigma_r = 0.45);
} // cv } // cv
#endif #endif

View File

@ -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)
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,
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;

View File

@ -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
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
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);
}

View File

@ -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)
} }
} }
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,19 +148,6 @@ 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)
{
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], magXR, CV_32FC1, 1, 0, 3);
Sobel(planes[0], magYR, CV_32FC1, 0, 1, 3); Sobel(planes[0], magYR, CV_32FC1, 0, 1, 3);
@ -169,7 +156,6 @@ void Domain_Filter::find_magnitude(Mat &img, Mat &mag, int flags)
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);

16
modules/photo/test/test_npr.cpp Normal file → Executable file
View File

@ -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);
}

View File

@ -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;

View File

@ -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[])
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[])
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);
} }