MCPcopy Create free account
hub / github.com/PRiME-project/PRiMEStereoMatch / buildCV_left_thread

Method buildCV_left_thread

DE_APP/src/CVC.cpp:228–293  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

226}
227
228void *CVC::buildCV_left_thread(void *thread_arg)
229{
230 struct buildCV_TD *t_data;
231 t_data = (struct buildCV_TD *) thread_arg;
232 const Mat lImg = *t_data->lImg;
233 const Mat rImg = *t_data->rImg;
234 const Mat lGrdX = *t_data->lGrdX;
235 const Mat rGrdX = *t_data->rGrdX;
236 const int d = t_data->d;
237 Mat* costVol = t_data->costVol;
238
239 int hei = lImg.rows;
240 int wid = lImg.cols;
241
242 //32 bit float data
243 if(lImg.type() == CV_32FC3 && rImg.type() == CV_32FC3)
244 {
245 for( int y = 0; y < hei; y ++ ) {
246 float* lData = ( float* ) lImg.ptr<float>( y );
247 float* rData = ( float* ) rImg.ptr<float>( y );
248 float* lGData = ( float* ) lGrdX.ptr<float>( y );
249 float* rGData = ( float* ) rGrdX.ptr<float>( y );
250 float* cost = ( float* ) costVol->ptr<float>( y );
251 for( int x = d; x < wid; x ++ ) {
252 float* lC = lData + 3 * x;
253 float* rC = rData + 3 * ( x - d );
254 float* lG = lGData + x;
255 float* rG = rGData + x - d;
256 cost[x] = myCostGrd( lC, rC, lG, rG );
257 }
258 for( int x = 0; x < d; x ++ ) {
259 float* lC = lData + 3 * x;
260 float* lG = lGData + x;
261 cost[x] = myCostGrd( lC, lG );
262 }
263 }
264 }
265 //8 bit unsigned char data
266 else if(lImg.type() == CV_8UC3 && rImg.type() == CV_8UC3)
267 {
268 for( int y = 0; y < hei; y ++ ) {
269 uchar* lData = ( uchar* ) lImg.ptr<uchar>( y );
270 uchar* rData = ( uchar* ) rImg.ptr<uchar>( y );
271 uchar* lGData = ( uchar* ) lGrdX.ptr<uchar>( y );
272 uchar* rGData = ( uchar* ) rGrdX.ptr<uchar>( y );
273 uchar* cost = ( uchar* ) costVol->ptr<uchar>( y );
274 for( int x = d; x < wid; x ++ ) {
275 uchar* lC = lData + 3 * x;
276 uchar* rC = rData + 3 * ( x - d );
277 uchar* lG = lGData + x;
278 uchar* rG = rGData + x - d;
279 cost[x] = myCostGrd( lC, rC, lG, rG );
280 }
281 for( int x = 0; x < d; x ++ ) {
282 uchar* lC = lData + 3 * x;
283 uchar* lG = lGData + x;
284 cost[x] = myCostGrd( lC, lG );
285 }

Callers

nothing calls this directly

Calls 1

myCostGrdFunction · 0.85

Tested by

no test coverage detected