基本形状的绘制&添加文字

本次用opencv在图像上绘制了线,矩形,椭圆,圆的形状和放置了文字。

#include<iostream>
 
using namespace std;
using namespace cv;
void plot_line();
void plot_rectangle();
void plot_Ellipse();
void plot_circle();
void text();
Mat src;  //声明一个全局变量Src

int main(int argc, char ** argv)
{

    src = imread("D:/meinv.jpg");
    namedWindow("原图像",CV_WINDOW_AUTOSIZE);
    imshow("原图像", src);

    plot_line();  //画线
    plot_rectangle();   //画矩形
    plot_Ellipse();     //画椭圆
    plot_circle();        //画圆
    text();            //添加文字

    namedWindow("目标图像", CV_WINDOW_AUTOSIZE);
    imshow("目标图像", src);
    waitKey(0);
    return 0;

}

void plot_rectangle()    //画矩形
{
    Rect rect = Rect(400, 240, 200, 200);   //400,240代表矩形的起点,200代表矩形的长和宽
    Scalar color = Scalar(0, 0, 255);       //颜色
    rectangle(src, rect, color, 2, 8, 0);   //调用API
}

void plot_line()        //画线
{
    Point x1 = Point(20, 30);   //线段第一个点的坐标
    Point x2 = Point(60, 280);   //线段第二个点的坐标
    Scalar color = Scalar(0, 255, 0);
    line(src, x1, x2, color, 2, 8, 0);    //调用API
}

void plot_Ellipse()      //画椭圆
{
    Scalar color = Scalar(255,0, 0);
    ellipse(src, Point(src.cols / 2, src.rows / 2), Size(src.cols / 6, src.rows / 6), 90, 0, 360, color, 2, 8, 0);  //第二个参数为椭圆的中心,第三个参数为半径
    //第三个参数为椭圆的旋转角度,第四个参数为从0度画到360度的弧度 
}
 
void plot_circle()      //画圆
{ 
    Scalar color = Scalar(255, 255, 0);
    Point center = Point(src.cols / 2, src.rows / 2);   //定义圆的中心
    circle(src, center, 150, color, 2, 8, 0);
}

void text()
{
    Scalar color = Scalar(255, 0, 255);
    putText(src, "Hello OpenCv!", Point(400, 300), CV_FONT_HERSHEY_COMPLEX, 1.0, color, 2, 8);
}

显示效果如下:

(1)原图:

(2)目标图像

posted @ 2018-09-09 20:41  RamboBai  阅读(362)  评论(0编辑  收藏  举报