学习opencv(第二单元)
OpenCv的数据类型
提到的在库里一般缩写为 b=unsigned char, w=unsigned short ,s=short , i=int ,f=float, d=double.
Mat 和 Matx
链接: 转载.
补充:
CV_8U是 unsign 的8位/像素-即一个像素的值在0-255区间,这是大多数图像和视频格式的正常范围。
CV_32F是 float -像素是在0-1.0之间的任意值,这对于一些数据集的计算很有用,但是它必须通过将每个像素乘以255来转换成8位来保存或显示。
CV_32S是每个像素的带符号的32位整数值-对像素进行整数数学运算同样有用,但再次需要转换为8位以保存或显示。这很棘手,因为您需要决定如何将更大范围的可能值(+/- 20亿!)转换为0-255
Point类
初始化:
Point2i p(1,1);
cout<<p.x;
点乘:dot
叉乘:cross
Scalar类
Size类
Rect类(创建矩形 和对他操作)
下面展示一些 内联代码片
。
Point2i p(1,1);
Size2f sz(100,100);
Rect r(p,sz); //创建对象(还可以用Rect(p,p)两个对角创建
Point2i p1(1,1);
Size2f sz1(50,50);
Rect r1(p1,sz1);
Rect r2=r1&r; //两个矩形的交集
/*
还可以提取左上右下角,判断点p是否在矩形内
*/
RotatedRect类(不同于Rect 此类以中心为原点)
Point2i p(1,1);
Size2f sz(100,100);
int theta=30; //角度
RotatedRect rr(p,sz,theta);