您的位置:首页 > 其它

图像的绘制 直线 椭圆 圆形 多边形

2017-10-30 19:11 302 查看
#include<iostream>

#include<core\core.hpp>

#include<opencv2\opencv.hpp>

using namespace std;

using namespace cv;

Mat bgImage;

const char* drawdemo_win = "绘制形状与文字";

void my_line();

void my_rect();

void my_ellipse();

void my_circle();

void my_polygon();

int main(int argc,char** argv){
bgImage = imread("1.jpg");
if (bgImage.empty())
{
cout << "could not load image.." << endl;
return -1;
}
my_line();//线性
my_rect();//矩形
my_ellipse();//椭圆
my_circle();//圆
my_polygon();//多边形  
//可以在多边形上puttext
putText(bgImage, "Hello opencv", Point(100, 100), CV_FONT_BLACK, 1.0, Scalar(0, 0, 255), 1, 8, false);

namedWindow(drawdemo_win, CV_WINDOW_AUTOSIZE);
imshow(drawdemo_win, bgImage);

waitKey(0);
return 0;

}

void my_line() {
Point p1 =
Point(20, 20);
Point p2;
p2.x = 300;
p2.y = 300;
Scalar color = Scalar(0, 0, 255);
line(bgImage, p1, p2, color, 1);

}

void my_rect() {
//成员变量x、y、width、height,分别为左上角点的坐标和矩形的宽和高
Rect rect = Rect(50, 50, 300, 300);
Scalar color = Scalar(255, 255, 0);
rectangle(bgImage, rect, color, 1, 8, 0);

}

void my_ellipse() {
Scalar color = Scalar(255, 255, 0);
//背景图 中心点 size(长轴,短轴) 倾斜角度  ,0,弧线画的范围程度 划线的颜色 默认后几个 
ellipse(bgImage, Point(bgImage.rows / 2, bgImage.cols / 2), Size(bgImage.rows / 4, bgImage.rows / 8), 45, 0, 180, color);

   

}

void my_circle() {
Scalar color = Scalar(255, 255, 0);
//背景图 中心点 半径 颜色
circle(bgImage, Point(bgImage.rows / 2, bgImage.cols / 2), 150, color);

}

void my_polygon() {
Point pts[1][5];
pts[0][0] = Point(100, 100);
pts[0][1] = Point(100, 200);
pts[0][2] = Point(200, 200);
pts[0][3] = Point(200, 100);
pts[0][4] = Point(100, 100);
const Point* ppts[] = { pts[0] };
int npt[] = { 5 };
Scalar color = Scalar(255, 12, 255);
fillPoly(bgImage, ppts, npt, 1, color,8);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐