OpenCv(5)--绘制形状与文字

原创 2018年04月15日 15:23:42

1、画线
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:线条粗细
第五个参数线条类型。CV_AA - antialiased 线条。
第六个参数:坐标点的小数点位数。
例:

Point p1 = Point(20,30);
point p2;
p2.x = 300;
p2.y = 300;
Scalar color = Scalar(0,255,255);
line(bgImage,p1,p2,color,1,Line_AA);//Line_AA为反锯齿

2、画椭圆
ellipse()
void cvCircle( CvArr* img, CvPoint center, int radius, CvScalar color,
int thickness=1, int line_type=8, int shift=0 );
(1)img图像。
(2)center圆心坐标。
(3)radius 圆形的半径。
(4)color线条的颜色。
(5)thickness如果是正数,表示组成圆的线条的粗细程度。否则,表示圆是否被填充。
(6)line_type线条的类型。见 cvLine 的描述
(7)shift圆心坐标点和半径值的小数点位数。

Scalar color = Scalar(0,255,255);
ellipse(bgImage,Point(bgImage.cols/2,bgImage.rows/2),Size(bgImage.cols/4,bgImage.rows/8),90,0,360,color,2,Line_8);

3、画矩形
rectangle()
通过传入矩形画矩形:
void rectangle(Mat& img, Rect rec, const Scalar& color, int thickness=1, int lineType=8, int shift=0 )

Rect rect = Rect(200,100,300,300);
Scalar color = Scalar(255,0,0);
rectangle(bgImage,rect,color,2,Line_8);

4、画圆
circle()
cvCircle(CvArr* img, CvPoint center, int radius, CvScalar color, int thickness=1, int lineType=8, int shift=0)

Scalar color = Scalar(0255255);
circle(bgImage,Point(bgImage.rpws/2,bgImage.cols/2),150,color,1,Line_AA);

5、画填充
fillPoly()

#include <iostream>    
#include <opencv2/opencv.hpp>  

using namespace cv;  
using namespace std;  


int main()  
{  
    Mat src = imread("02.jpg");  

    Point root_points[1][6];  
    root_points[0][0] = Point(215, 220);  
    root_points[0][1] = Point(460, 225);  
    root_points[0][2] = Point(466, 450);  
    root_points[0][3] = Point(235, 465);  
    root_points[0][4] = Point(260, 390);  
    root_points[0][5] = Point(96, 310);  

    const Point* ppt[1] = { root_points[0] };  
    int npt[] = { 6 };  
    polylines(src, ppt, npt, 1, 1, Scalar(0,0,0), 1, 8, 0);  
    imshow("Test", src);  

    cv::Mat mask_ann, dst;  
    src.copyTo(mask_ann);  
    mask_ann.setTo(cv::Scalar::all(0));  

    fillPoly(mask_ann, ppt, npt, 1, Scalar(255, 255, 255));  
    imshow("mask_ann", mask_ann);  
    src.copyTo(dst, mask_ann);  
    imshow("dst", dst);  
    waitKey();  
    return 0;  
}  

6、绘制文字
void putText(Mat& img, const string& text, Point org, int fontFace, double fontScale, Scalar color, int thickness=1, int lineType=8, bool bottomLeftOrigin=false )

img – 显示文字所在图像.
text – 待显示的文字.
org – 文字在图像中的左下角 坐标.
font – 字体结构体.
fontFace – 字体类型, 可选择字体:
fontScale – 字体大小,该值和字体内置大小相乘得到字体大小
color – 文本颜色
thickness –  写字的线的粗细
lineType – 线型.
bottomLeftOrigin – true, 图像数据原点在左下角. Otherwise, 图像数据原点在左上角.
    Mat image2;  
    for(int i = 0;i < 255;i += 2)  
    {  
        image2 = image - Scalar::all(i);  
        putText(image2,"OpenCV Forever!",org,FONT_HERSHEY_COMPLEX,  
        3,Scalar(i,i,255),5,lineType);  
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Missayaaa/article/details/79949638

OpenCV--绘制形状与文字

绘制直线void line(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, ...
  • qq_25343557
  • qq_25343557
  • 2017-11-29 15:31:40
  • 93

opencv简单形状绘制

今天继续opencv的学习,今天学习的内容是,画一些简单的形状,比如直线、方形等。 主要涉及的函数: (1)Mat::zeros(Size size,Type type)//可以用来初始化一个背景全黑...
  • ZouCharming
  • ZouCharming
  • 2017-04-14 21:57:32
  • 831

【OpenCV3】几何图形(直线、矩形、圆、椭圆、多边形等)绘制

在图像处理的过程中,我们有时需要在图像或者视频上画上一些图案或者绘上一些文字。OpenCV中提供了各种功能的绘图函数,使用这些函数,我们可以在图像上绘制直线、矩形、圆、椭圆、多边形、以及文字等等。...
  • guduruyu
  • guduruyu
  • 2017-03-30 17:21:19
  • 3194

学习OpenCV2——绘制基本图形及文字

本文简述了OpenCV中的绘图及文本函数
  • GDFSG
  • GDFSG
  • 2016-03-12 21:43:04
  • 7606

opencv2-1随机图形与文字生成

opencv2-随机图形与文字生成
  • gdut2015go
  • gdut2015go
  • 2015-09-24 22:16:43
  • 432

【OpenCV 学习】自带示例:随机数发生器&绘制文字 代码注释解析

最近开始尝试学习OpenCV,确实发现了这个东西很不错。市面上的书基本上都是关于OpenCV 1.0版本的...
  • Justin_CS2012
  • Justin_CS2012
  • 2014-07-30 17:16:25
  • 1268

OpenCV 形状拟合函数总结

Ellipse Comments from the Wiki void cvEllipse(CvArr* img, CvPoint center, CvSize axes, double an...
  • KingEasternSun
  • KingEasternSun
  • 2015-03-24 23:33:16
  • 864

【OpenCV3】文字绘制——cv::putText详解

opencv中除了提供绘制各种图形的函数外,还提供了一个特殊的绘制函数——在图像上绘制文字。这个函数即是cv::putText()。...
  • guduruyu
  • guduruyu
  • 2017-03-30 18:38:54
  • 20344

opencv画扇形,半透明,添加中文汉字等等

画扇形: cvEllipse(&src,centerpoint,ellsize,0,0,360-angle3,cvScalar(0,255,255),-1,8,0); 将倒数第三个参数写为-1是画扇...
  • preston2006
  • preston2006
  • 2013-10-12 14:45:53
  • 2776

Android平台下使用OpenCV绘制图形

这片博文简单介绍怎样使用OpenCV的函数,由于就是那么几个函数,本文就以绘制一个椭圆为例,简单做一个Demo并说明下需要注意的问题...
  • yu544324974
  • yu544324974
  • 2016-07-08 21:47:34
  • 756
收藏助手
不良信息举报
您举报文章:OpenCv(5)--绘制形状与文字
举报原因:
原因补充:

(最多只允许输入30个字)