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

Function cvRawDataToScalar

deps/opencv/modules/core/src/array.cpp:1523–1569  ·  view source on GitHub ↗

Converts data of specified type to CvScalar

Source from the content-addressed store, hash-verified

1521
1522// Converts data of specified type to CvScalar
1523CV_IMPL void
1524cvRawDataToScalar( const void* data, int flags, CvScalar* scalar )
1525{
1526 int cn = CV_MAT_CN( flags );
1527
1528 assert( scalar && data );
1529
1530 if( (unsigned)(cn - 1) >= 4 )
1531 CV_Error( CV_StsOutOfRange, "The number of channels must be 1, 2, 3 or 4" );
1532
1533 memset( scalar->val, 0, sizeof(scalar->val));
1534
1535 switch( CV_MAT_DEPTH( flags ))
1536 {
1537 case CV_8U:
1538 while( cn-- )
1539 scalar->val[cn] = CV_8TO32F(((uchar*)data)[cn]);
1540 break;
1541 case CV_8S:
1542 while( cn-- )
1543 scalar->val[cn] = CV_8TO32F(((char*)data)[cn]);
1544 break;
1545 case CV_16U:
1546 while( cn-- )
1547 scalar->val[cn] = ((ushort*)data)[cn];
1548 break;
1549 case CV_16S:
1550 while( cn-- )
1551 scalar->val[cn] = ((short*)data)[cn];
1552 break;
1553 case CV_32S:
1554 while( cn-- )
1555 scalar->val[cn] = ((int*)data)[cn];
1556 break;
1557 case CV_32F:
1558 while( cn-- )
1559 scalar->val[cn] = ((float*)data)[cn];
1560 break;
1561 case CV_64F:
1562 while( cn-- )
1563 scalar->val[cn] = ((double*)data)[cn];
1564 break;
1565 default:
1566 assert(0);
1567 CV_Error( CV_BadDepth, "" );
1568 }
1569}
1570
1571
1572static double icvGetReal( const void* data, int type )

Callers 4

cvGet1DFunction · 0.85
cvGet2DFunction · 0.85
cvGet3DFunction · 0.85
cvGetNDFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected