@@ -130,8 +130,8 @@ void calculateChannelSums(uint &sumB, uint &sumG, uint &sumR, uchar *src_data, i
130
130
v_expand (v_max_val, v_max1, v_max2);
131
131
132
132
// Calculate masks
133
- v_m1 = ~((v_max1 - v_min1) * v_255 > v_thresh * v_max1);
134
- v_m2 = ~((v_max2 - v_min2) * v_255 > v_thresh * v_max2);
133
+ v_m1 = ~(v_mul_wrap (v_max1 - v_min1, v_255) > v_mul_wrap ( v_thresh, v_max1) );
134
+ v_m2 = ~(v_mul_wrap (v_max2 - v_min2, v_255) > v_mul_wrap ( v_thresh, v_max2) );
135
135
136
136
// Apply masks
137
137
v_iB1 = (v_iB1 & v_m1) + (v_iB2 & v_m2);
@@ -282,12 +282,12 @@ void applyChannelGains(InputArray _src, OutputArray _dst, float gainB, float gai
282
282
v_expand (v_inR, v_sR1, v_sR2);
283
283
284
284
// Multiply by gains
285
- v_sB1 = (v_sB1 * v_gainB) >> 8 ;
286
- v_sB2 = (v_sB2 * v_gainB) >> 8 ;
287
- v_sG1 = (v_sG1 * v_gainG) >> 8 ;
288
- v_sG2 = (v_sG2 * v_gainG) >> 8 ;
289
- v_sR1 = (v_sR1 * v_gainR) >> 8 ;
290
- v_sR2 = (v_sR2 * v_gainR) >> 8 ;
285
+ v_sB1 = v_mul_wrap (v_sB1, v_gainB) >> 8 ;
286
+ v_sB2 = v_mul_wrap (v_sB2, v_gainB) >> 8 ;
287
+ v_sG1 = v_mul_wrap (v_sG1, v_gainG) >> 8 ;
288
+ v_sG2 = v_mul_wrap (v_sG2, v_gainG) >> 8 ;
289
+ v_sR1 = v_mul_wrap (v_sR1, v_gainR) >> 8 ;
290
+ v_sR2 = v_mul_wrap (v_sR2, v_gainR) >> 8 ;
291
291
292
292
// Pack into vectors of v_uint8x16
293
293
v_store_interleave (&dst_data[i], v_pack (v_sB1, v_sB2), v_pack (v_sG1, v_sG2), v_pack (v_sR1, v_sR2));
0 commit comments