opencv学习笔记-5,绘制线条、矩形、圆、椭圆,添加文字
2017-07-20 16:07
218 查看
一、代码
#include<opencv2/opencv.hpp>
#include<highgui.h>
#include<iostream>
using namespace cv;
Mat img;
void Mylines();
void Myrectangle();
void Mycircle();
void Myellipse();
int main(int argc,char**argv)
{
img=imread("1.jpg");
Mylines();
Myellipse();
Myrectangle();
Mycircle();
putText(img,"hello opencv",Point(300,300),CV_FONT_HERSHEY_COMPLEX,1.0,Scalar(25,255,255),2,8); 文字
namedWindow("my picture",CV_WINDOW_NORMAL);
imshow("my picture",img);
waitKey(0);
}
void Mylines(){
画线
Point p1=Point(20,30);
Point p2;
p2.x=20;
p2.y=200;
Scalar color=Scalar(0,0,255);
line(img,p1,p2,color,2,8);
}
void Myrectangle(){ 矩形
Rect rect=Rect(50,50,500,400);
Scalar color=Scalar(255,0,0);
rectangle(img,rect,color,2,8);
}
void Mycircle(){ 圆
//Point center=Point(img.cols/2,img.rows/2);
Scalar color=Scalar(0,255,255);
circle(img,Point(img.cols/2,img.rows/2),200,color,2,8);
}
void Myellipse(){
椭圆
Scalar color=Scalar(0,255,0);
ellipse(img,Point(img.cols/2,img.rows/2),Size(img.cols/4,img.rows/8),180,0,360,color,2,8);
}
二、运行结果
![](https://oscdn.geek-share.com/Uploads/Images/Content/201707/20/8731c5cdaebe508ee8e12e87ed3479e4)
三、API介绍
1、cv::line
void cvLine( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8,int shift=0 );
第一个参数img:要划的线所在的图像;
第二个参数pt1:直线起点
第二个参数pt2:直线终点
第三个参数color:直线的颜色 e.g:Scalor(0,0,255)
第四个参数thickness=1:线条粗细
第五个参数line_type=8,
(说明一点:这个linetype参数并不是指线型是实线、虚线还是点画线,这个参数实际用途是改变线的产生算法。)
2、cv::rectangle
void cvRectangle( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color,int thickness=1,
int line_type=8, int shift=0 ;CvSize min_size=cvSize(0,0);CvSize max=cvSize(0,0));
img -- 图像.
pt1 -- 矩形的一个顶点。
pt2 -- 矩形对角线上的另一个顶点
color -- 线条颜色 (RGB) 或亮度(灰度图像 )(grayscale image)。
thickness -- 组成矩形的线条的粗细程度。取负值时(如 CV_FILLED)函数绘制填充了色彩的矩形。
line_type -- 线条的类型。见cvLine的描述
shift -- 坐标点的小数点位数。
CvSize cvSize(int height,int width)
3、cv::circle
cvCircle(CvArr* img, CvPoint center, int radius, CvScalar color, int thickness=1,
int lineType=8, int shift=0)
img为图像指针,单通道多通道都行,不需要特殊要求
center为画圆的圆心坐标
radius为圆的半径
color为设定圆的颜色,比如用CV_RGB(255, 0,0)设置为红色
thickness为设置圆线条的粗细,值越大则线条越粗,为负数则是填充效果
4、cv::ellipse
void
cvEllipse( CvArr* img, CvPoint center, CvSize axes, double angle,double start_angle, double end_angle, CvScalar color,int thickness=1, int line_type=8, int shift=0 );
img 图像。center 椭圆圆心坐标。axes 轴的长度。angle 偏转的角度。start_angle 圆弧起始角的角度。.end_angle 圆弧终结角的角度。color 线条的颜色。thickness 线条的粗细程度。line_type 线条的类型,见CVLINE的描述。shift 圆心坐标点和数轴的精度。
#include<opencv2/opencv.hpp>
#include<highgui.h>
#include<iostream>
using namespace cv;
Mat img;
void Mylines();
void Myrectangle();
void Mycircle();
void Myellipse();
int main(int argc,char**argv)
{
img=imread("1.jpg");
Mylines();
Myellipse();
Myrectangle();
Mycircle();
putText(img,"hello opencv",Point(300,300),CV_FONT_HERSHEY_COMPLEX,1.0,Scalar(25,255,255),2,8); 文字
namedWindow("my picture",CV_WINDOW_NORMAL);
imshow("my picture",img);
waitKey(0);
}
void Mylines(){
画线
Point p1=Point(20,30);
Point p2;
p2.x=20;
p2.y=200;
Scalar color=Scalar(0,0,255);
line(img,p1,p2,color,2,8);
}
void Myrectangle(){ 矩形
Rect rect=Rect(50,50,500,400);
Scalar color=Scalar(255,0,0);
rectangle(img,rect,color,2,8);
}
void Mycircle(){ 圆
//Point center=Point(img.cols/2,img.rows/2);
Scalar color=Scalar(0,255,255);
circle(img,Point(img.cols/2,img.rows/2),200,color,2,8);
}
void Myellipse(){
椭圆
Scalar color=Scalar(0,255,0);
ellipse(img,Point(img.cols/2,img.rows/2),Size(img.cols/4,img.rows/8),180,0,360,color,2,8);
}
二、运行结果
三、API介绍
1、cv::line
void cvLine( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8,int shift=0 );
第一个参数img:要划的线所在的图像;
第二个参数pt1:直线起点
第二个参数pt2:直线终点
第三个参数color:直线的颜色 e.g:Scalor(0,0,255)
第四个参数thickness=1:线条粗细
第五个参数line_type=8,
(说明一点:这个linetype参数并不是指线型是实线、虚线还是点画线,这个参数实际用途是改变线的产生算法。)
2、cv::rectangle
void cvRectangle( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color,int thickness=1,
int line_type=8, int shift=0 ;CvSize min_size=cvSize(0,0);CvSize max=cvSize(0,0));
img -- 图像.
pt1 -- 矩形的一个顶点。
pt2 -- 矩形对角线上的另一个顶点
color -- 线条颜色 (RGB) 或亮度(灰度图像 )(grayscale image)。
thickness -- 组成矩形的线条的粗细程度。取负值时(如 CV_FILLED)函数绘制填充了色彩的矩形。
line_type -- 线条的类型。见cvLine的描述
shift -- 坐标点的小数点位数。
CvSize cvSize(int height,int width)
3、cv::circle
cvCircle(CvArr* img, CvPoint center, int radius, CvScalar color, int thickness=1,
int lineType=8, int shift=0)
img为图像指针,单通道多通道都行,不需要特殊要求
center为画圆的圆心坐标
radius为圆的半径
color为设定圆的颜色,比如用CV_RGB(255, 0,0)设置为红色
thickness为设置圆线条的粗细,值越大则线条越粗,为负数则是填充效果
4、cv::ellipse
void
cvEllipse( CvArr* img, CvPoint center, CvSize axes, double angle,double start_angle, double end_angle, CvScalar color,int thickness=1, int line_type=8, int shift=0 );
img 图像。center 椭圆圆心坐标。axes 轴的长度。angle 偏转的角度。start_angle 圆弧起始角的角度。.end_angle 圆弧终结角的角度。color 线条的颜色。thickness 线条的粗细程度。line_type 线条的类型,见CVLINE的描述。shift 圆心坐标点和数轴的精度。
相关文章推荐
- OpenCv学习笔记(七)---OpenCv中的基本绘图函数,圆,椭圆,线段,矩形,多边形的绘制(1)
- OpenCV学习笔记(18):在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- OpenCV学习九:绘制直线、矩形、椭圆、原型、填充任意图形
- opencv学习笔记11 在图片中添加文字,点击鼠标显示位置坐标
- opencv 2.x学习笔记(十)随机数发生器、绘制文字
- 基础学习笔记之opencv(14):随机数发生器&绘制文字
- 【OpenCV笔记 06】OpenCV中绘制基本几何图形【矩形rectangle()、椭圆ellipse() 、圆circle() 】
- OpenCv学习笔记(六):使用opencv画线、矩形、椭圆、多边形线、多边形体等
- 关于sdl的学习笔记,怎么绘制线条和矩形
- opencv学习笔记(十)画直线、矩形、圆形、椭圆以及多边形程序
- OpenCV学习笔记(3):点集的最小外接矩形/圆,RNG类
- 【OpenCV学习笔记】二十二、直方图计算及绘制(二)
- GDI+学习笔记6-统计报表的背景与文字的绘制
- OpenCV学习8--绘制形状和文字
- Canvas使用 -- 在canvas上绘制圆角矩形并添加文字
- python OpenCV学习笔记之绘制直方图的方法
- Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等
- Opencv学习笔记——画矩形
- iOS Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等
- IOS Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等