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

Function split_

deps/opencv/modules/core/src/convert.cpp:52–101  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

50\****************************************************************************************/
51
52template<typename T> static void
53split_( const T* src, T** dst, int len, int cn )
54{
55 int k = cn % 4 ? cn % 4 : 4;
56 int i, j;
57 if( k == 1 )
58 {
59 T* dst0 = dst[0];
60 for( i = j = 0; i < len; i++, j += cn )
61 dst0[i] = src[j];
62 }
63 else if( k == 2 )
64 {
65 T *dst0 = dst[0], *dst1 = dst[1];
66 for( i = j = 0; i < len; i++, j += cn )
67 {
68 dst0[i] = src[j];
69 dst1[i] = src[j+1];
70 }
71 }
72 else if( k == 3 )
73 {
74 T *dst0 = dst[0], *dst1 = dst[1], *dst2 = dst[2];
75 for( i = j = 0; i < len; i++, j += cn )
76 {
77 dst0[i] = src[j];
78 dst1[i] = src[j+1];
79 dst2[i] = src[j+2];
80 }
81 }
82 else
83 {
84 T *dst0 = dst[0], *dst1 = dst[1], *dst2 = dst[2], *dst3 = dst[3];
85 for( i = j = 0; i < len; i++, j += cn )
86 {
87 dst0[i] = src[j]; dst1[i] = src[j+1];
88 dst2[i] = src[j+2]; dst3[i] = src[j+3];
89 }
90 }
91
92 for( ; k < cn; k += 4 )
93 {
94 T *dst0 = dst[k], *dst1 = dst[k+1], *dst2 = dst[k+2], *dst3 = dst[k+3];
95 for( i = 0, j = k; i < len; i++, j += cn )
96 {
97 dst0[i] = src[j]; dst1[i] = src[j+1];
98 dst2[i] = src[j+2]; dst3[i] = src[j+3];
99 }
100 }
101}
102
103template<typename T> static void
104merge_( const T** src, T* dst, int len, int cn )

Callers 4

split8uFunction · 0.85
split16uFunction · 0.85
split32sFunction · 0.85
split64sFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected