精华内容
下载资源
问答
  • CvScalar

    2019-10-01 08:31:04
    CvScalar定义可存放1—4个数值的数值,其结构如下。 typedef struct CvScalar{double val[4];}CvScalar; ------------------------------------------------ CvScalar pt; 如果使用的图像是1通道的,则pt.val[0...

    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.     }  

    转载于:https://www.cnblogs.com/Peit/p/6431146.html

    展开全文
  • opencv CvScalar解析

    2018-11-13 07:11:13
    opencv CvScalar解析

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                   

    一句话: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了。


               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • opencv之CvScalar

    千次阅读 2018-04-13 18:51:09
    CvScalar就是一个可以用来存放4个double数值的数组(O'Reilly的书上写的是4个整型成员);一般用来存放像素值(不一定是灰度值哦)的,最多可以存放4个通道的。 typedef struct CvScalar {  double val[4];  }...
     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

    展开全文
  • cvScalar函数

    千次阅读 2012-12-21 10:10:52
    cvScalar函数在OpenCV程序中比较常用,简单记录一下,便于以后学习: typedef struct CvScalar { double val[4]; } CvScalar; CV_INLINE CvScalar cvScalar( double val0, double val1 CV_DEFAULT...

    cvScalar函数在OpenCV程序中比较常用,简单记录一下,便于以后学习:


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


    CV_INLINE CvScalar cvScalar( double val0, double val1 CV_DEFAULT(0),

    double val2 CV_DEFAULT(0), double val3 CV_DEFAULT(0))
    {
    CvScalar scalar;
    scalar.val[0] = val0; scalar.val[1] = val1;
    scalar.val[2] = val2; scalar.val[3] = val3;
    return scalar;
    }

    CvScalar就是一个包含四个元素的结构体变量。CvScalar定义可存放1—4个数值的数值,其结构如上。

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

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


    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


    CV_INLINE CvScalar cvRealScalar( double val0 )
    {
    CvScalar scalar;
    scalar.val[0] = val0;
    scalar.val[1] = scalar.val[2] = scalar.val[3] = 0;
    return scalar;
    }

    CV_INLINE CvScalar cvScalarAll( double val0123 )
    {
    CvScalar scalar;
    scalar.val[0] = val0123;
    scalar.val[1] = val0123;
    scalar.val[2] = val0123;
    scalar.val[3] = val0123;
    return scalar;
    }
    展开全文
  • CvScalar结构

    2014-04-12 22:02:48
    CvScalar定义可存放1—4个数值的数值,其结构如下。 typedef struct CvScalar {  double val[4]; } CvScalar; ------------------------------------------------ CvScalar pt; 如果使用的图像是1通道的,...
  • 标量 CvScalar

    2012-04-25 08:32:44
    (3) 标量: CvScalar |-- double val[4];...CvScalar s = cvScalar(double val0, double val1=0, double val2=0, double val3=0); // Example: CvScalar s = cvScalar(20.0); s.val[0]=20.0; 注
  • 详解CvScalar类型

    千次阅读 2016-11-23 16:57:46
    CvScalar类型 :  它包括四个整型成员,当内存不是问题的时候,CvScalar经常用来代替1,2或者3个实数成员(这种情况下,不需要的分量被忽略掉),CvScalar有一个单独的成员val,val是一个指针,它指向一个4个双精度...
  • Opencv 中的结构体CvScalar

    万次阅读 2017-04-13 18:14:33
    CvScalarCvScalar是一个可以用来存放4个double数值的数组;一般用来存放像素值(不一定是灰度值哦)的,最多可以存放4个通道的。...inline CvScalar cvScalar( double val0, double val1=0,double val2=0, doub
  • CvScalar cvGet2D

    2016-06-23 17:21:56
    返回特殊的数组元素 CvScalar cvGet2D( const CvArr* arr, int idx0, int idx1 );
  • /home/dzw/plslam/mrpt-0c3d605c3cbf5f2ffb8137089e43ebdae5a55de3/libs/vision/src/sift-hess/imgfeatures.c:346:9: error: incompatible types when assigning to type ‘CvScalar {aka struct CvScalar}’ from ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 530
精华内容 212
热门标签
关键字:

cvscalar