[OpenCV] 基础数据结构

相关头文件:<core.hpp>


cv::Matx<>

固定矩阵,用作存放小矩阵,多用来存放一些滤波器的核,一些算法矩阵等等。与之相反的是 cv::Mat<> 是动态大小的矩阵,通常用来存储图像数据 。


cv::Vec<>

固定向量,继承自固定矩阵cv::Matx<>,cv::Vec<>在编译时就知道容器大小,是固定大小的,和STL的Array比较像。类比std::vector<>则是动态大小的数组。是列为1的cv::Matx<> 。

因为其继承自 cv::Matx<> ,所以具备 Matx的所有特性。


cv::Point<>

坐标点 。

这里的Point 可以转换成 cv::Vec<> ,即 “构造成固定向量类”,但是Point 和 Vec在底层没有任何关系,是不同的数据结构,Point是结构体,Vec是数组,但是Point 有转换成 固定向量类的构造方法。这在线性代数层面可以理解,点 和 向量 在数学表示上是一样的


cv::Scalar

四元数组,非模板类,其继承自 cv::Vec<double,4>因此是四维double类型的固定大小数组。多用来表示包含四元信息的Point 。

虽然Scalar和Point一样都是表达 “点” ,但是二者的底层数据结构不一样,Scalar 是一个 Vec,Point是一个结构体,因此 Scalar 没有 “构造成固定向量类” 的方法/构造,因为 Scalar 本身就是一个固定向量类的子类cv::Vec<double,4> 。


cv::Size<>

尺寸,包含两个属性width和height 。

从成员访问的方式可以断定,Size的底层实现是一个结构体。但是不像 Point 那样有 “转换成固定向量类” 的方法/构造,不是说代码上不可以实现,而是从数学层面来说,尺寸和向量没有任何关系


cv::Rect

非模板类,对称矩形,包含四个属性width ,height ,x 和 y 。


cv::RotateRect

非模板类,非对称矩形,包含一个 Size ,一个原点 Point ,和 一个浮点类型的角度 。


cv::Complex<>

复数类,和STL的复数类std::complex<>可以互相转换 。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值