MCPcopy Create free account
hub / github.com/creatale/node-dv / transform_

Function transform_

deps/opencv/modules/core/src/matmul.cpp:1289–1348  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1287{
1288
1289template<typename T, typename WT> static void
1290transform_( const T* src, T* dst, const WT* m, int len, int scn, int dcn )
1291{
1292 int x;
1293
1294 if( scn == 2 && dcn == 2 )
1295 {
1296 for( x = 0; x < len*2; x += 2 )
1297 {
1298 WT v0 = src[x], v1 = src[x+1];
1299 T t0 = saturate_cast<T>(m[0]*v0 + m[1]*v1 + m[2]);
1300 T t1 = saturate_cast<T>(m[3]*v0 + m[4]*v1 + m[5]);
1301 dst[x] = t0; dst[x+1] = t1;
1302 }
1303 }
1304 else if( scn == 3 && dcn == 3 )
1305 {
1306 for( x = 0; x < len*3; x += 3 )
1307 {
1308 WT v0 = src[x], v1 = src[x+1], v2 = src[x+2];
1309 T t0 = saturate_cast<T>(m[0]*v0 + m[1]*v1 + m[2]*v2 + m[3]);
1310 T t1 = saturate_cast<T>(m[4]*v0 + m[5]*v1 + m[6]*v2 + m[7]);
1311 T t2 = saturate_cast<T>(m[8]*v0 + m[9]*v1 + m[10]*v2 + m[11]);
1312 dst[x] = t0; dst[x+1] = t1; dst[x+2] = t2;
1313 }
1314 }
1315 else if( scn == 3 && dcn == 1 )
1316 {
1317 for( x = 0; x < len; x++, src += 3 )
1318 dst[x] = saturate_cast<T>(m[0]*src[0] + m[1]*src[1] + m[2]*src[2] + m[3]);
1319 }
1320 else if( scn == 4 && dcn == 4 )
1321 {
1322 for( x = 0; x < len*4; x += 4 )
1323 {
1324 WT v0 = src[x], v1 = src[x+1], v2 = src[x+2], v3 = src[x+3];
1325 T t0 = saturate_cast<T>(m[0]*v0 + m[1]*v1 + m[2]*v2 + m[3]*v3 + m[4]);
1326 T t1 = saturate_cast<T>(m[5]*v0 + m[6]*v1 + m[7]*v2 + m[8]*v3 + m[9]);
1327 dst[x] = t0; dst[x+1] = t1;
1328 t0 = saturate_cast<T>(m[10]*v0 + m[11]*v1 + m[12]*v2 + m[13]*v3 + m[14]);
1329 t1 = saturate_cast<T>(m[15]*v0 + m[16]*v1 + m[17]*v2 + m[18]*v3 + m[19]);
1330 dst[x+2] = t0; dst[x+3] = t1;
1331 }
1332 }
1333 else
1334 {
1335 for( x = 0; x < len; x++, src += scn, dst += dcn )
1336 {
1337 const WT* _m = m;
1338 int j, k;
1339 for( j = 0; j < dcn; j++, _m += scn + 1 )
1340 {
1341 WT s = _m[scn];
1342 for( k = 0; k < scn; k++ )
1343 s += _m[k]*src[k];
1344 dst[j] = saturate_cast<T>(s);
1345 }
1346 }

Callers 7

transform_8uFunction · 0.85
transform_16uFunction · 0.85
transform_32fFunction · 0.85
transform_8sFunction · 0.85
transform_16sFunction · 0.85
transform_32sFunction · 0.85
transform_64fFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected