OpenCV学习笔记八——常用数据结构和函数

1、点的表示:Point类

Point类数据结构表示了二维坐标系下的点,既由其图像坐标x和y指定的2D点:

Point point;

point.x = 10;

point.y = 8;

或者:

Point point = point(10,8);

OpenCV中的定义:

typedef  Point_<int>  Point2i;

typedef  Point2i  Point;

typedef Point_<float>  Point2f;


2、颜色表示:Scalar类

Scalar()表示具有4个元素的数组,在OpenCV中被大量用于传递像素值,如RGB颜色值。而RGB颜色值为三个参数,其实对于Scalar函数来说,如果用不到第四个参数则不需要写出来;若只写三个参数,OpenCV会认为我们就想表示三个参数。

例如:给出以下颜色参数表达式:Scalar(a,b,c);   那么定义的RGB颜色值:红色分量为c,绿色分量为b,蓝色分量为a。

Scalar类的源头为Scalar_类,而Scalar_类是Vec4x的一个变种,我们常用的Scalar其实就是Scalar_<double>。这就是为什么很多函数的参数输入可以是Mat,也可以是Scalar。


3、尺寸的表示:Size类

OpenCV中对Size类的定义:

typedef   Size_<int>    Size2i;

typedef   Size2i   Size;

Size类的使用;  Size(5,5);   或者:XXX.width    XXX.height


4、矩形的表示:Rect类;

Rect类的成员变量有x,y,width,height,分别为左上角点的坐标和矩形的宽和高。

常用的成员函数有:

Size()返回值为Size;

area()返回矩形的面积;

contains(Point)判断点是否在矩形内;

inside(Rect)函数判断矩形是否在改矩形内;

tl()返回左上角点坐标;

br()返回右下角点坐标。

求两个矩形的交集和并集:

Rect rect = rect1 & rect2;

Rect rect = rect1 | rect2;

矩形进行平移操作和缩放操作:

Rect rectShift = rect +point;

Rect rectScale = rect+size;

5、颜色空间转换:cvtColor()函数

cvtColor()可以实现RGB向HSV、HSI等颜色空间的转换,也可以转换为灰度图像。

void cvtColor (InputArray src, OutputArray dst, int code, int dstCn =0)   第三个参数code为颜色空间转换的标识符,第四个参数为目标函数的通道数,若该参数为0,表示目标图像取原图像的通道数。下面列举的是code的值:

#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"

using namespace cv;

void main(){
	
	Mat srcImage = imread("lena.jpg",1), dstImage;
	imshow("原图",srcImage);
	
	cvtColor(srcImage,dstImage,CV_BGR2Lab);
	imshow("效果图",dstImage);
	
	waitKey(0);
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值