前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV 各数据类型中的行与列,宽与高,x与y

OpenCV 各数据类型中的行与列,宽与高,x与y

作者头像
chaibubble
发布2022-05-07 09:26:35
1.1K0
发布2022-05-07 09:26:35
举报
文章被收录于专栏:深度学习与计算机视觉

在IplImage类型中图片的尺寸用width和 height来定义,在Mat类型中换成了cols与rows,但即便是这样,在C++风格的数据类型中还是会出现width和 height的定义,比如Rect。这些细节如果不加注意,代码不会报错,但是运行后结果就不是我们想要的了,甚至直接出现异常。

代码语言:javascript
复制
总的来说就是:
Mat类的rows(行)对应IplImage结构体的heigh(高),行与高对应point.y   
Mat类的cols(列)对应IplImage结构体的width(宽),列与宽对应point.x   
这个不难理解,opencv的坐标系原点在左上角,但是还是水平轴是x,垂直轴是y

1.新建一个mat类型

代码语言:javascript
复制
Mat MoveImage(SrcImage.rows,SrcImage.cols,CV_8UC1,Scalar(0));

构造函数的定义是先行后列

2遍历像素点

代码语言:javascript
复制
	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)。

定义:

代码语言:javascript
复制
template<typename _Tp> inline Point_<_Tp>::Point_() : x(0), y(0) {}

先x后y

应用:

代码语言:javascript
复制
cv::Point pt =  Point(10, 8);  

等同于:

代码语言:javascript
复制
cv::Point pt;  
pt.x = 10;  
pt.y = 8; 

4.Size类型

模板类Size可表示一幅图像或一个矩形的大小。它包含宽、高2个成员:width , height还有一个有用的面积函数area()。

定义:

代码语言:javascript
复制
template<typename _Tp> inline Size_<_Tp>::Size_()
    : width(0), height(0) {}

可以看到先宽(列)后高(行)

应用:

代码语言:javascript
复制
Size dsize = Size(srcImage.cols*0.3,srcImage.rows*0.3);

5.Rect类型

Rect是另一个用于定义2维矩形的模板类。它由两个参数定义: 矩形左上角坐标: (x,y) 矩形的宽和高: width, height Rect可以用来定义图像的ROI区域。

定义:

代码语言:javascript
复制
template<typename _Tp> inline Rect_<_Tp>::Rect_() : x(0), y(0), width(0), height(0) {}

可以看到先x后y,先宽(列)后高(行)

代码语言:javascript
复制
template<typename _Tp> inline Rect_<_Tp>::Rect_(const Point_<_Tp>& org, const Size_<_Tp>& sz) :

Rect输入两个参数时,第一个就是Point,第二个就是Size

应用:

代码语言:javascript
复制
 cv::Rect  rect(180,200,200,200);//(x,y)=(180,200),w=200,height=200 

以上代码等同于:

代码语言:javascript
复制
Point pt =  Point(180, 200);
Size dsize = Size(200,200);
Rect  rect(pt,dsize); 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档