该类的对象创建具有两种创建形式:1、构造函数。2、使用成员变量赋值。具体示例如下:
Point pt=Point(x,y)//第一种方式,使用构造函数
Point pt;//第二种方式,使用成员变量赋值
pt.x=10;
pt.y=8;
该类定义的是一个四元素的向量,定义如下:
Scalar scalar(double val[4]);
该类型常用于传递像素值,也常用于表示BGR颜色值(3个参数)。如果不使用最后一个参数则无需定义它。
当要定义一个颜色参数时,可以使用Scalar(a,b,c)来表示。例如,当要定义一个BGR颜色时,可以使得Blue=a、Green=b、Red=c。
该类常用于定义图像的大小。示例如下:
cv::Size(int _wight,int _height)
使用示例:Size size(5,10);语句创建对象,其中我们使用size.width和size.height访问对象数据成员。
cv::line()函数常常用于连接pt1到pt2两个点的直线,定义如下:
void cv::line(
inputOutputArray img,//图像
Point pt1,//点1
Point pt2,//点2
const Scalar & color,//绘制直线的颜色
int thickness=1,//直线的厚度
int lineType=LINE_8,//直线的类型
int shief=0//点坐标中的小数位数
)
cv::rectangle()函数用于绘制矩形。
功能 | 实现 |
---|---|
默认构造函数 | cv::Rect r; |
复制构造函数 | cv::Rect r2(r1); |
带值的构造函数 | cv::Rect(x,y,w,h); |
访问函数成员 | r.x;r.y;r.wight;r.height |
面积计算 | r.area(); |
判断p点是否在r中 | r.contains§; |
cv::rectangle()函数定义有以下两种形式:
形式一:
void rectangle(
cv::Mat& img,//待绘制的图像
cv::Point pt1,//矩形的第一个顶点
cv::Point pt2,//矩形对角顶点
const cv::Scalar& color,//线条的颜色,RGB
int line Type=8,//线型(4邻域或8邻域,默认为8邻域)
int shift=0//偏移量
);
形式二:
void rectangle(
cv::Mat& img,//待绘制的图像
cv::Rect r,//待绘制的矩形
const cv::Scalar& color,//线条的颜色,RGB
int lineType=8,//线型(4邻域或8邻域,默认为8邻域)
int shift=0//偏移量
)
cv::circle()函数用于绘制圆形,定义如下:
void circle(
cv::Mat& img,//待绘制的图像
cv::Point center,//圆心位置
int radius,//圆的半径
const cv::Scalar& color,//线条的颜色,RGB
int thickness=1,//线宽,如果为负数则表示圆是否被填充
int lineType=8,//线型(4邻域或8邻域,默认为8邻域)
int shift=0//偏移量
)
示例代码如下:
#include
#include
#include
#include
using namespace std;
using namespace cv;
int main()
{
//设置窗口
Mat img=Mat::zeros(Size(800,600),CV_8UC3);
img.setTo(255);//设置屏幕为白色
Point p1(100,100);//点p1
Point p2(758,50);//点p2
//画直线函数
line(img,p1,p2,Scalar(0,0,255),2);//红色
line(img,Point(300,300),Point(758,400),Scalar(0,255,255),3);
Point p(20,20);//初始化点p的坐标为(20,20)
circle(img,p,1,Scalar(0,255,0),-1);
Point p4;
p4.x=300;
p4.y=300;
circle(img,p4,100,Scalar(120,120,120),-1);
int thickness=3;
int lineType=8;
double angle=30;//椭圆旋转角度
ellipse(img,Point(100,100),Size(90,60),angle,0,360,Scalar(255,255,0),thickness,lineType);
//画矩形
Rect r(250,250,120,200);
rectangle(img,r,Scalar(0,255,255),3);
imshow("pic",img);
waitKey();
return 0;
}