|
49 | 49 | using namespace std;
|
50 | 50 | using namespace cv;
|
51 | 51 |
|
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) |
53 | 53 | {
|
54 | 54 | CV_INSTRUMENT_REGION()
|
55 | 55 |
|
56 | 56 | 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); |
65 | 57 |
|
66 | 58 | Domain_Filter obj;
|
67 | 59 |
|
68 |
| - Mat img = Mat(I.size(),CV_32FC3); |
| 60 | + Mat img; |
69 | 61 | I.convertTo(img,CV_32FC3,1.0/255.0);
|
70 | 62 |
|
| 63 | + Mat res; |
71 | 64 | obj.filter(img, res, sigma_s, sigma_r, flags);
|
72 | 65 |
|
73 | 66 | convertScaleAbs(res, dst, 255,0);
|
74 | 67 | }
|
75 | 68 |
|
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) |
77 | 70 | {
|
78 | 71 | CV_INSTRUMENT_REGION()
|
79 | 72 |
|
80 | 73 | Mat I = _src.getMat();
|
81 |
| - _dst.create(I.size(), CV_8UC3); |
82 |
| - Mat dst = _dst.getMat(); |
83 | 74 |
|
84 |
| - int h = I.size().height; |
85 |
| - int w = I.size().width; |
86 | 75 | float factor = 3.0f;
|
87 | 76 |
|
88 |
| - Mat img = Mat(I.size(),CV_32FC3); |
| 77 | + Mat img; |
89 | 78 | I.convertTo(img,CV_32FC3,1.0/255.0);
|
90 | 79 |
|
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; |
96 | 81 | vector <Mat> lab_channel;
|
97 |
| - |
98 | 82 | cvtColor(img,lab,COLOR_BGR2Lab);
|
99 | 83 | split(lab,lab_channel);
|
100 | 84 |
|
101 |
| - Mat L = Mat(img.size(),CV_32FC1); |
102 |
| - |
| 85 | + Mat L; |
103 | 86 | lab_channel[0].convertTo(L,CV_32FC1,1.0/255.0);
|
104 | 87 |
|
105 | 88 | Domain_Filter obj;
|
106 | 89 |
|
| 90 | + Mat res; |
107 | 91 | obj.filter(L, res, sigma_s, sigma_r, 1);
|
108 | 92 |
|
109 |
| - Mat detail = Mat(h,w,CV_32FC1); |
110 |
| - |
111 |
| - detail = L - res; |
| 93 | + Mat detail = L - res; |
112 | 94 | multiply(detail,factor,detail);
|
113 | 95 | L = res + detail;
|
114 | 96 |
|
115 | 97 | L.convertTo(lab_channel[0],CV_32FC1,255);
|
116 | 98 |
|
117 | 99 | merge(lab_channel,lab);
|
118 | 100 |
|
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); |
121 | 103 | }
|
122 | 104 |
|
123 | 105 | 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
|
154 | 136 | _dst.create(I.size(), CV_8UC3);
|
155 | 137 | Mat dst = _dst.getMat();
|
156 | 138 |
|
157 |
| - Mat img = Mat(I.size(),CV_32FC3); |
| 139 | + Mat img; |
158 | 140 | I.convertTo(img,CV_32FC3,1.0/255.0);
|
159 | 141 |
|
160 | 142 | int h = img.size().height;
|
161 | 143 | int w = img.size().width;
|
162 | 144 |
|
163 |
| - Mat res = Mat(h,w,CV_32FC3); |
| 145 | + Mat res; |
164 | 146 | Mat magnitude = Mat(h,w,CV_32FC1);
|
165 | 147 |
|
166 | 148 | Domain_Filter obj;
|
167 | 149 | obj.filter(img, res, sigma_s, sigma_r, NORMCONV_FILTER);
|
168 | 150 |
|
169 | 151 | obj.find_magnitude(res,magnitude);
|
170 | 152 |
|
171 |
| - Mat stylized = Mat(h,w,CV_32FC3); |
| 153 | + Mat stylized; |
172 | 154 |
|
173 | 155 | vector <Mat> temp;
|
174 | 156 | split(res,temp);
|
|
0 commit comments