opencv 遍历方法

 

矩阵元素表达

  

OpenCV 中有模板类 Vec,可以表示一个向量。OpenCV 中使用 Vec 类预定义了一
些小向量,可以将之用于矩阵元素的表达。

typedef Vec<uchar, 2> Vec2b;
typedef Vec<uchar, 3> Vec3b;
typedef Vec<uchar, 4> Vec4b;

typedef Vec<short, 2> Vec2s;
typedef Vec<short, 3> Vec3s;
typedef Vec<short, 4> Vec4s;

typedef Vec<int, 2> Vec2i;
typedef Vec<int, 3> Vec3i;
typedef Vec<int, 4> Vec4i;

typedef Vec<float, 2> Vec2f;
typedef Vec<float, 3> Vec3f;
typedef Vec<float, 4> Vec4f;
typedef Vec<float, 6> Vec6f;

typedef Vec<double, 2> Vec2d;
typedef Vec<double, 3> Vec3d;
typedef Vec<double, 4> Vec4d;
typedef Vec<double, 6> Vec6d;

 

对于 Vec 对象,可以使用[]符号如操作数组般读写其元素

  

Vec3b color; //用 color 变量描述一种 RGB 颜色
color[0]=255; //B 分量
color[1]=0; //G 分量
color[2]=0; //R 分量

像素值读写方法

1.at函数

at函数是MAT类自带函数。

功能为读取某个像素。

返回值为像素类型

使用方法为:变量名 = 对象名.at<数据类型>(i+j)

2.迭代器

c++ stl 标准库中自带函数,类似指针

定义方法;MatIterator_<数据类型> 变量名;

对象名.begin<数据类型>()代表对象开头

对象名.end<数据类型>() 代表对象结尾

具体请参照c++STL标准库

3.指针读写

  通过指针读写可以提高效率,但c与c++没有边界检查功能,因此更加危险。

  定义方法:数据类型* p =对象名.ptr<uchar>(i);

    对象名.rows 行数;

    对象名.cols 列数;

 

posted @ 2021-01-25 11:16  KAVEI  阅读(119)  评论(0编辑  收藏  举报