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

Function merge_

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

Source from the content-addressed store, hash-verified

101}
102
103template<typename T> static void
104merge_( const T** src, T* dst, int len, int cn )
105{
106 int k = cn % 4 ? cn % 4 : 4;
107 int i, j;
108 if( k == 1 )
109 {
110 const T* src0 = src[0];
111 for( i = j = 0; i < len; i++, j += cn )
112 dst[j] = src0[i];
113 }
114 else if( k == 2 )
115 {
116 const T *src0 = src[0], *src1 = src[1];
117 for( i = j = 0; i < len; i++, j += cn )
118 {
119 dst[j] = src0[i];
120 dst[j+1] = src1[i];
121 }
122 }
123 else if( k == 3 )
124 {
125 const T *src0 = src[0], *src1 = src[1], *src2 = src[2];
126 for( i = j = 0; i < len; i++, j += cn )
127 {
128 dst[j] = src0[i];
129 dst[j+1] = src1[i];
130 dst[j+2] = src2[i];
131 }
132 }
133 else
134 {
135 const T *src0 = src[0], *src1 = src[1], *src2 = src[2], *src3 = src[3];
136 for( i = j = 0; i < len; i++, j += cn )
137 {
138 dst[j] = src0[i]; dst[j+1] = src1[i];
139 dst[j+2] = src2[i]; dst[j+3] = src3[i];
140 }
141 }
142
143 for( ; k < cn; k += 4 )
144 {
145 const T *src0 = src[k], *src1 = src[k+1], *src2 = src[k+2], *src3 = src[k+3];
146 for( i = 0, j = k; i < len; i++, j += cn )
147 {
148 dst[j] = src0[i]; dst[j+1] = src1[i];
149 dst[j+2] = src2[i]; dst[j+3] = src3[i];
150 }
151 }
152}
153
154static void split8u(const uchar* src, uchar** dst, int len, int cn )
155{

Callers 4

merge8uFunction · 0.85
merge16uFunction · 0.85
merge32sFunction · 0.85
merge64sFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected