OpenCV 各数据类型中的行与列,宽与高,x与y
2017-03-13 22:51
1176 查看
在IplImage类型中图片的尺寸用width和 height来定义,在Mat类型中换成了cols与rows,但即便是这样,在C++风格的数据类型中还是会出现width和 height的定义,比如Rect。这些细节如果不加注意,代码不会报错,但是运行后结果就不是我们想要的了,甚至直接出现异常。
1.新建一个mat类型
构造函数的定义是先行后列
2遍历像素点
i = 行 = y
j = 列 = x
注意因为at(y,x),而不是at(x,y)
3.Point类型
常用于表示2维坐标(x,y)。
定义:
先x后y
应用:
等同于:
4.Size类型
模板类Size可表示一幅图像或一个矩形的大小。它包含宽、高2个成员:width , height还有一个有用的面积函数area()。
定义:
可以看到先宽(列)后高(行)
应用:
5.Rect类型
Rect是另一个用于定义2维矩形的模板类。它由两个参数定义:
矩形左上角坐标: (x,y)
矩形的宽和高: width, height
Rect可以用来定义图像的ROI区域。
定义:
可以看到先x后y,先宽(列)后高(行)
Rect输入两个参数时,第一个就是Point,第二个就是Size
应用:
以上代码等同于:
总的来说就是: Mat类的rows(行)对应IplImage结构体的heigh(高),行与高对应point.y Mat类的cols(列)对应IplImage结构体的width(宽),列与宽对应point.x 这个不难理解,opencv的坐标系原点在左上角,但是还是水平轴是x,垂直轴是y
1.新建一个mat类型
Mat MoveImage(SrcImage.rows,SrcImage.cols,CV_8UC1,Scalar(0));
构造函数的定义是先行后列
2遍历像素点
for (int i=0;i<SrcImage.rows;i++) { for (int j=0;j<SrcImage.cols;j++) { MoveImage.at<uchar>(i,j) = (int)SrcImage.at<uchar>(i,j); } }
i = 行 = y
j = 列 = x
注意因为at(y,x),而不是at(x,y)
3.Point类型
常用于表示2维坐标(x,y)。
定义:
template<typename _Tp> inline Point_<_Tp>::Point_() : x(0), y(0) {}
先x后y
应用:
cv::Point pt = Point(10, 8);
等同于:
cv::Point pt; pt.x = 10; pt.y = 8;
4.Size类型
模板类Size可表示一幅图像或一个矩形的大小。它包含宽、高2个成员:width , height还有一个有用的面积函数area()。
定义:
template<typename _Tp> inline Size_<_Tp>::Size_() : width(0), height(0) {}
可以看到先宽(列)后高(行)
应用:
Size dsize = Size(srcImage.cols*0.3,srcImage.rows*0.3);
5.Rect类型
Rect是另一个用于定义2维矩形的模板类。它由两个参数定义:
矩形左上角坐标: (x,y)
矩形的宽和高: width, height
Rect可以用来定义图像的ROI区域。
定义:
template<typename _Tp> inline Rect_<_Tp>::Rect_() : x(0), y(0), width(0), height(0) {}
可以看到先x后y,先宽(列)后高(行)
template<typename _Tp> inline Rect_<_Tp>::Rect_(const Point_<_Tp>& org, const Size_<_Tp>& sz) :
Rect输入两个参数时,第一个就是Point,第二个就是Size
应用:
cv::Rect rect(180,200,200,200);//(x,y)=(180,200),w=200,height=200
以上代码等同于:
Point pt = Point(180, 200); Size dsize = Size(200,200); Rect rect(pt,dsize);
相关文章推荐
- opencv学习-2-0初探-基本类型数据
- opencv学习-2-0初探-基本类型数据
- OpenCV 的数据类型
- opencv学习笔记[9]:Opencv的基本数据类型和矩阵结构
- OpenCV学习笔记(一)—OpenCV的基本数据类型和矩阵
- opencv中cvCalibrateCamera2的参数npoints对数据类型的要求
- opencv中数据类型转换
- opencv数据类型
- OpenCV2.3 中矩阵的数据类型与C++中类型的对照
- OpenCV 学习笔记---基本数据类型
- opencv学习-2-0初探-基本类型数据
- OpenCV cvmat结构 赋值 和 type 数据类型探讨 课后题3-2
- OpenCV学习之数据类型
- OpenCV基本数据类型
- OpenCV基本数据类型
- 学习opencv第三章 基本数据类型 ,矩阵创建,操作,访问
- opencv学习-2-0初探-基本类型数据
- OpenCV学习笔记 -- 基本数据类型
- Opencv--Mat,IplImage数据类型
- OpenCV Mat数据类型及位数总结