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:
parent
2f65a0d4ba
commit
33e6c07485
@ -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
|
||||
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.
|
||||
|
||||
|
@ -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_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.
|
||||
|
@ -328,9 +328,6 @@ CV_EXPORTS_W Ptr<MergeRobertson> createMergeRobertson();
|
||||
CV_EXPORTS_W void stylization(InputArray src, OutputArray dst, float sigma_s = 60,
|
||||
float sigma_r = 0.45);
|
||||
|
||||
CV_EXPORTS_W void edgeEnhance(InputArray src, OutputArray dst, float sigma_s = 60,
|
||||
float sigma_r = 0.45);
|
||||
|
||||
} // cv
|
||||
|
||||
#endif
|
||||
|
@ -74,6 +74,13 @@ class Decolor
|
||||
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)
|
||||
{
|
||||
vector <double> energy;
|
||||
@ -228,7 +235,7 @@ void Decolor::weak_order(Mat img, vector <double> &alf)
|
||||
if((h + w) > 800)
|
||||
{
|
||||
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);
|
||||
@ -304,7 +311,7 @@ void Decolor::grad_system(Mat img, vector < vector < double > > &polyGrad,
|
||||
if((h + w) > 800)
|
||||
{
|
||||
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;
|
||||
|
@ -151,7 +151,6 @@ void cv::stylization(InputArray _src, OutputArray _dst, float sigma_s, float sig
|
||||
|
||||
int h = img.size().height;
|
||||
int w = img.size().width;
|
||||
int channel = img.channels();
|
||||
|
||||
Mat res = Mat(h,w,CV_32FC3);
|
||||
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;
|
||||
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);
|
||||
|
||||
@ -172,31 +171,3 @@ void cv::stylization(InputArray _src, OutputArray _dst, float sigma_s, float sig
|
||||
|
||||
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
|
||||
void getGradienty( const Mat &img, Mat &gy);
|
||||
void diffx(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_Rfilter(Mat &O, Mat &horiz, float sigma_h);
|
||||
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 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 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], 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], magYB, CV_32FC1, 0, 1, 3);
|
||||
}
|
||||
|
||||
Mat mag1 = Mat(h,w,CV_32FC1);
|
||||
Mat mag2 = Mat(h,w,CV_32FC1);
|
||||
|
16
modules/photo/test/test_npr.cpp
Normal file → Executable file
16
modules/photo/test/test_npr.cpp
Normal file → Executable file
@ -128,19 +128,3 @@ TEST(Photo_NPR_Stylization, regression)
|
||||
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()
|
||||
cout << "6) Texture Flattening " << endl;
|
||||
cout << endl;
|
||||
cout << "Press number 1-6 to choose from above techniques: ";
|
||||
int num;
|
||||
int num = 1;
|
||||
cin >> num;
|
||||
cout << endl;
|
||||
|
||||
|
@ -11,7 +11,6 @@
|
||||
* 2) Detail Enhancement
|
||||
* 3) Pencil sketch/Color Pencil Drawing
|
||||
* 4) Stylization
|
||||
* 5) Edge Enhancement
|
||||
*
|
||||
*/
|
||||
|
||||
@ -57,10 +56,9 @@ int main(int argc, char* argv[])
|
||||
cout << "2) Detail Enhancement" << endl;
|
||||
cout << "3) Pencil sketch/Color Pencil Drawing" << endl;
|
||||
cout << "4) Stylization" << endl;
|
||||
cout << "5) Edge Enhancement" << 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;
|
||||
|
||||
@ -94,11 +92,5 @@ int main(int argc, char* argv[])
|
||||
stylization(I,img);
|
||||
imshow("Stylization",img);
|
||||
}
|
||||
else if(num == 5)
|
||||
{
|
||||
edgeEnhance(I,img);
|
||||
imshow("Edge Enhance",img);
|
||||
}
|
||||
|
||||
waitKey(0);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user