OpenCV中固定向量模板类cv::Vec<>
1、vector
Vector(向量)是一个封装了动态大小数组的顺序性容器,能存放各种类型的对象。可以简单的认为vector是一个能够存放任意类型的动态数组。
用法:
#include <vector>
using namespace std;
vector<int> v; //声明一个 int 向量 v,未分配大小,可以动态的向里面添加删除
2、vec<>
Vec3b color; //变量 color 是一个长度为 3 的 uchar 数组,用于描述 RGB 颜色
固定向量别名命名规则:cv::Vec{2,3,4,6}{b, s ,w , i, f, d}
{2,3,4,6}代表向量的长度;
{b, s ,w , i, f, d}表示向量内数据类型;
b:unsigned char ; s:short int
w:unsigned short; i:int
f:float; d:double
3、访问像素
cv::mat的成员函数: .at(int y, int x),可以用来存取图像中对应坐标为(x,y)的元素坐标。
在使用时,在编译期必须要已知图像的数据类型,因为cv::mat可以存放任意数据类型的元素,因此at方法的实现用模板函数来实现。
Img.at<uchar>(14,25) = 30; //img的数据类型为 unsigned char型灰度图(单通道),要对坐标为(14,25)的像素重新赋值为30
// 若为彩色图,将坐标(14,25)的像素赋值为30,需要对这个像素三个通道的每个对应元素赋值
Opencv中图像三原色在内存中的排列顺序为BGR
img.at<Vec3b>(14,25) [0]= 25;//B
img.at< Vec3b >(14,25) [1]= 25;//G
img.at< Vec3b >(14,25 [2]= 25;//R