Skip to content

Commit 667f5b6

Browse files
cdcseacavealalek
authored andcommitted
Merge pull request opencv#10933 from cdcseacave:clean_npr
* clean npr functions of useless initializations (speed-up) * photo: remove unnecessary code
1 parent 0d2cee4 commit 667f5b6

File tree

1 file changed

+14
-32
lines changed

1 file changed

+14
-32
lines changed

modules/photo/src/npr.cpp

Lines changed: 14 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -49,75 +49,57 @@
4949
using namespace std;
5050
using namespace cv;
5151

52-
void cv::edgePreservingFilter(InputArray _src, OutputArray _dst, int flags, float sigma_s, float sigma_r)
52+
void cv::edgePreservingFilter(InputArray _src, OutputArray dst, int flags, float sigma_s, float sigma_r)
5353
{
5454
CV_INSTRUMENT_REGION()
5555

5656
Mat I = _src.getMat();
57-
_dst.create(I.size(), CV_8UC3);
58-
Mat dst = _dst.getMat();
59-
60-
int h = I.size().height;
61-
int w = I.size().width;
62-
63-
Mat res = Mat(h,w,CV_32FC3);
64-
dst.convertTo(res,CV_32FC3,1.0/255.0);
6557

6658
Domain_Filter obj;
6759

68-
Mat img = Mat(I.size(),CV_32FC3);
60+
Mat img;
6961
I.convertTo(img,CV_32FC3,1.0/255.0);
7062

63+
Mat res;
7164
obj.filter(img, res, sigma_s, sigma_r, flags);
7265

7366
convertScaleAbs(res, dst, 255,0);
7467
}
7568

76-
void cv::detailEnhance(InputArray _src, OutputArray _dst, float sigma_s, float sigma_r)
69+
void cv::detailEnhance(InputArray _src, OutputArray dst, float sigma_s, float sigma_r)
7770
{
7871
CV_INSTRUMENT_REGION()
7972

8073
Mat I = _src.getMat();
81-
_dst.create(I.size(), CV_8UC3);
82-
Mat dst = _dst.getMat();
8374

84-
int h = I.size().height;
85-
int w = I.size().width;
8675
float factor = 3.0f;
8776

88-
Mat img = Mat(I.size(),CV_32FC3);
77+
Mat img;
8978
I.convertTo(img,CV_32FC3,1.0/255.0);
9079

91-
Mat res = Mat(h,w,CV_32FC1);
92-
dst.convertTo(res,CV_32FC3,1.0/255.0);
93-
94-
Mat result = Mat(img.size(),CV_32FC3);
95-
Mat lab = Mat(img.size(),CV_32FC3);
80+
Mat lab;
9681
vector <Mat> lab_channel;
97-
9882
cvtColor(img,lab,COLOR_BGR2Lab);
9983
split(lab,lab_channel);
10084

101-
Mat L = Mat(img.size(),CV_32FC1);
102-
85+
Mat L;
10386
lab_channel[0].convertTo(L,CV_32FC1,1.0/255.0);
10487

10588
Domain_Filter obj;
10689

90+
Mat res;
10791
obj.filter(L, res, sigma_s, sigma_r, 1);
10892

109-
Mat detail = Mat(h,w,CV_32FC1);
110-
111-
detail = L - res;
93+
Mat detail = L - res;
11294
multiply(detail,factor,detail);
11395
L = res + detail;
11496

11597
L.convertTo(lab_channel[0],CV_32FC1,255);
11698

11799
merge(lab_channel,lab);
118100

119-
cvtColor(lab,result,COLOR_Lab2BGR);
120-
result.convertTo(dst,CV_8UC3,255);
101+
cvtColor(lab,res,COLOR_Lab2BGR);
102+
res.convertTo(dst,CV_8UC3,255);
121103
}
122104

123105
void cv::pencilSketch(InputArray _src, OutputArray _dst1, OutputArray _dst2, float sigma_s, float sigma_r, float shade_factor)
@@ -154,21 +136,21 @@ void cv::stylization(InputArray _src, OutputArray _dst, float sigma_s, float sig
154136
_dst.create(I.size(), CV_8UC3);
155137
Mat dst = _dst.getMat();
156138

157-
Mat img = Mat(I.size(),CV_32FC3);
139+
Mat img;
158140
I.convertTo(img,CV_32FC3,1.0/255.0);
159141

160142
int h = img.size().height;
161143
int w = img.size().width;
162144

163-
Mat res = Mat(h,w,CV_32FC3);
145+
Mat res;
164146
Mat magnitude = Mat(h,w,CV_32FC1);
165147

166148
Domain_Filter obj;
167149
obj.filter(img, res, sigma_s, sigma_r, NORMCONV_FILTER);
168150

169151
obj.find_magnitude(res,magnitude);
170152

171-
Mat stylized = Mat(h,w,CV_32FC3);
153+
Mat stylized;
172154

173155
vector <Mat> temp;
174156
split(res,temp);

0 commit comments

Comments
 (0)