CvScalar

CvScalar定义可存放1—4个数值的数值,其结构如下。

typedef struct CvScalar
{
    double val[4];
}
CvScalar;

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

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了。

 

【补充】:

CvScalar s = cvSum(arr);
s.val[0]:数组arr中的B通道值的和,double类型
s.val[1]:数组arr中的G通道值的和,double类型
s.val[2]:数组arr中的R通道值的和,double类型
s.val[3]:数组arr中的alphe通道值的和,double类型

 

 

  1.     for (int i=0; i<src->height; i++)  
  2.     {  
  3.         for (int j=0; j<src->width; j++)  
  4.         {  
  5.             CvScalar color=cvGet2D(src, i, j);  
  6.             cvSet2D(res, i, N-j-1, color);//注意这里  
  7.         }  
  8.     }  
posted @ 2017-02-22 21:35  体育.委员  阅读(219)  评论(0编辑  收藏  举报