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

Function diagtransform_

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

Source from the content-addressed store, hash-verified

1641}
1642
1643template<typename T, typename WT> static void
1644diagtransform_( const T* src, T* dst, const WT* m, int len, int cn, int )
1645{
1646 int x;
1647
1648 if( cn == 2 )
1649 {
1650 for( x = 0; x < len*2; x += 2 )
1651 {
1652 T t0 = saturate_cast<T>(m[0]*src[x] + m[2]);
1653 T t1 = saturate_cast<T>(m[4]*src[x+1] + m[5]);
1654 dst[x] = t0; dst[x+1] = t1;
1655 }
1656 }
1657 else if( cn == 3 )
1658 {
1659 for( x = 0; x < len*3; x += 3 )
1660 {
1661 T t0 = saturate_cast<T>(m[0]*src[x] + m[3]);
1662 T t1 = saturate_cast<T>(m[5]*src[x+1] + m[7]);
1663 T t2 = saturate_cast<T>(m[10]*src[x+2] + m[11]);
1664 dst[x] = t0; dst[x+1] = t1; dst[x+2] = t2;
1665 }
1666 }
1667 else if( cn == 4 )
1668 {
1669 for( x = 0; x < len*4; x += 4 )
1670 {
1671 T t0 = saturate_cast<T>(m[0]*src[x] + m[4]);
1672 T t1 = saturate_cast<T>(m[6]*src[x+1] + m[9]);
1673 dst[x] = t0; dst[x+1] = t1;
1674 t0 = saturate_cast<T>(m[12]*src[x+2] + m[14]);
1675 t1 = saturate_cast<T>(m[18]*src[x+3] + m[19]);
1676 dst[x+2] = t0; dst[x+3] = t1;
1677 }
1678 }
1679 else
1680 {
1681 for( x = 0; x < len; x++, src += cn, dst += cn )
1682 {
1683 const WT* _m = m;
1684 for( int j = 0; j < cn; j++, _m += cn + 1 )
1685 dst[j] = saturate_cast<T>(src[j]*_m[j] + _m[cn]);
1686 }
1687 }
1688}
1689
1690static void
1691diagtransform_8u(const uchar* src, uchar* dst, const float* m, int len, int scn, int dcn)

Callers 7

diagtransform_8uFunction · 0.85
diagtransform_8sFunction · 0.85
diagtransform_16uFunction · 0.85
diagtransform_16sFunction · 0.85
diagtransform_32sFunction · 0.85
diagtransform_32fFunction · 0.85
diagtransform_64fFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected