关于cvScalar的那些事

CvScalar 

可存放在1-,2-,3-,4-TUPLE类型的捆绑数据的容器 

该函数包含4个浮点成员,可以用来表示B(Blue),G(Green),R(Red),Alpha(表示图像的透明度)

typedef struct CvScalar
{
double val[4]
}
CvScalar;
/* 构造函数:用val0初始化val[0]用val1初始化val[1], 以此类推*/
inline CvScalar cvScalar( double val0, double val1=0,
double val2=0, double val3=0 );
/* 构造函数:用val0123初始化所有val[0]...val[3] */
inline CvScalar cvScalarAll( double val0123 );
/* 构造函数:用val0初始化val[0],用0初始化val[1],val[2],val[3] */
inline CvScalar cvRealScalar( double val0 );


下面的来自freeboy1015)的内容

------------------------------------------------

CvScalar pt;

如果使用的图像是1通道的,则pt.val[0]中存储数据

如果使用的图像是3通道的,则pt.val[0],pt.val[1],pt.val[2]中存储数据

==============================

cvGet2D 获得某个点的值, idx0=hight 行值, idx1=width 列值。
CVAPI(CvScalar) cvGet2D( const CvArr* arr, int idx0, int idx1 );
 -----------------------------------------------
cvSet2D 给某个点赋值。
CVAPI(void) cvSet2D( CvArr* arr, int idx0, int idx1, CvScalar value );
 -----------------------------------------------
由上可见,cvGet2D的返回类型和cvSet2D中value的类型都是CvScalar,这样定义一个CvScalar变量再调用函数就OK了。


你可能感兴趣的:(scala)