opencv之CvScalar

 CvScalar就是一个可以用来存放4个double数值的数组(O'Reilly的书上写的是4个整型成员);一般用来存放像素值(不一定是灰度值哦)的,最多可以存放4个通道的。
typedef struct CvScalar
{
  double val[4];
  }CvScalar;

赋值/CvScalar 编辑

1. inline CvScalar cvScalar( double val0, double val1=0,double val2=0, double val3=0 );
//最通用的,可初始化0-4个通道
举例:
a) 存放单通道图像中像素:cvScalar(255);
b) 存放三通道图像中像素:cvScalar(255,255,255);
2. inline CvScalar cvRealScalar( double val0 );
//只使用第一个通道,val[0]=val0;等同于cvScalar(val0,0,0,0);
3. inline CvScalar cvScalarAll( double val0123 );
//所用通道值用同一个val0123赋值
4. CV_RGB
CV_RGB是OPENCV中的一个宏,用于创建一个色彩值:
#define CV_RGB(r,g,b) cvScalar((b),(g),(r),0)。
看到转换为cvScalar时,rgb的顺序变为bgr,这是因为opencv中存储RGB模式彩图时,采用的通道顺序是BGR.

举例/CvScalar 编辑

CvScalar color = CV_RGB( rand()&255, rand()&255, rand()&255 )
#include

void CreateEchelonIdentity(CvArr *Array,CvScalar Color)
{
cvSetIdentity(Array,Color);
}
int main()
{
IplImage *Image1;

CvSize Size1=cvSize(320,240);
CvSize2D32f Size2 =cvSize2D32f(640.0,480.0);

CvScalar Scalar1=cvScalar(0,1,2,3);
CvScalar Scalar2=cvRealScalar(10);
CvScalar Scalar3=cvScalarAll(20);
CvScalar Scalar4=CV_RGB(255,255,3);

Image1=cvCreateImage(Size1,IPL_DEPTH_8U,3);
CreateEchelonIdentity(Image1,Scalar4);

printf("The Size1 height is : %d\n",Size1.height);
printf("The Size1 width is : %d\n\n",Size1.width);

printf("The Size2 height is : %.1f\n",Size2.height);
printf("The Size2 width is : %.1f\n\n",Size2.width);

printf("The Scalar1 is: (%.1f,%.1f,%.1f,%.1f)\n",Scalar1.val[0],Scalar1.val[1],Scalar1.val[2],Scalar1.val[3]);
printf("The Scalar2 is: (%.1f,%.1f,%.1f,%.1f)\n",Scalar2.val[0],Scalar2.val[1],Scalar2.val[2],Scalar2.val[3]);
printf("The Scalar3 is: (%.1f,%.1f,%.1f,%.1f)\n\n",Scalar3.val[0],Scalar3.val[1],Scalar3.val[2],Scalar3.val[3]);

printf("The Scalar4 is: (%.1f,%.1f,%.1f,%.1f)\n",Scalar4.val[0],Scalar4.val[1],Scalar4.val[2],Scalar4.val[3]);

cvNamedWindow("Echelon Identity",1);
cvShowImage("Echelon Identity",Image1);

cvWaitKey(0);

}

参考

http://www.baike.com/wiki/CvScalar

http://blog.sina.com.cn/s/blog_6a907d0b0101aotg.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值