c++画图

1、画直线
line(src, p1, p2, color, thickness, typeline) // src:图像,p1:起始点,p2:终止点,color:颜色,thickness:线宽,typeline:线型。
2、画矩形
rectangle(src, rect, color, thickness, typeline) // rect:矩形的形状。
3、画椭圆
ellipse(src, 中心点,长轴长, 短轴长, 旋转角度,椭圆的起始度数,椭圆的终止度数,线宽,线型) //ellipse(img, Point(img.cols/2, img.rows/2), Size(img.cols/4, img.rows/6), 45, 0, 360, 1, LINE_8);
4、画圆
circle(src, 圆中心点, 半径,颜色,线宽,线型); //circle(img, center, 100, color, 1 , 8)
4、填充多边形
fillPoly(src, 起始指针,个数,颜色,线宽,线型); //fillPoly(img, ppts, ptn, color, 1, 8);
5、在图像上显示文字
putText(src “文字”, 起始点坐标, 字体, 尺寸因子, 颜色, 线宽, 线型); //putText(dst, “the number of lines”, Point(100, 100), FONT_HERSHEY_COMPLEX, 1.0, Scalar(125, 125, 125), 1, 8);

#include <opencv2/opencv.hpp>
#include <iostream>using namespace std;
using namespace cv;void Lines();
void Rectangles();
void Ellipses();
void Circle();
void RandomLines();
void Polygons();Mat img = imread("G:/testpic/img.png");int main(int argc, char** args)
{if (img.empty()){printf("the image cannot load");return -1;}Lines();Rectangles();Ellipses();Circle();RandomLines();Polygons();namedWindow("input", WINDOW_AUTOSIZE);imshow("input", img);putText(img, "draw", Point(100,100), Font__HERSHEY_COMPLEX, 1.0, Scalar(125,125,125), 1, 8);
}//直线
void Lines()
{Point p1 = Point(20,30);Point p2;p2.x = 300;p2.y = 300;Scalar color = Scalar(0,0,255);
;    line(img, p1, p2, color, 1, LINE_8);}//矩形
void Rectangles()
{Rect rect = Rect(100,100, 200, 150); //(100,100)起始点坐标,宽200, 高150Scalar color = Scalar(0,255,255);rectangle(img, rect, color, 1, LINE_8);}//椭圆
void Ellipses()
{Scalar color = Scalar(255, 0, 0);ellipse(img, Point(img.cols/2, img.rows/2), Size(img.cols/4, img.rows/6), 45, 0, 360, 1, LINE_8);
}//圆
void Circle()
{Scalar color = Scalar(255,0,0);Point center = Point(img.cols/2, img.rows/2);circle(img, center, 100, color, 1 , 8);
}//随机直线
void RandomLines()
{RNG rng(1234);Point p1;Point p2;Mat dst = Mat::zeros(img.size(), img.type());for (int i=0; i < 1000; i++){Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255));p1.x = rng.uniform(0, img.cols);p1.y = rng.uniform(0, img.rows);p2.x = rng.uniform(0, img.cols);p2.y = rng.uniform(0, img.rows);if(waitKey(50)>0){break;}line(dst, p1, p2, color, 1, 8);imshow("output", dst);}}//多边形
void Polygons()
{Point pts[1][5];const Point* ppts[] = {pts[0]};int ptn[] = {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);Scalar color = Scalar(125, 125, 255);fillPoly(img, ppts, ptn, color, 1, 8);
}


结果图:

c++画直线、矩形、圆、椭圆相关推荐

  1. 运用C#在VS2017的PictureBox控件中绘制简易二自由度机械臂,并且让机械臂实现画直线、圆、人物轮廓及写字的功能。

    运用C#在VS2017的PictureBox控件中绘制简易二自由度机械臂,并且让机械臂实现画直线.圆.人物轮廓及写字的功能. 给大家看看效果吧 演示写字视频在下: VID 首先放置了诸多控件 在给控件 ...

  2. SVG基本使用(一、基本概念、使用方法、绘制矩形/圆/椭圆/直线/折现/多边形/)

    一.SVG概念 1.什么是SVG? SVG英文全称为Scalable Vector Graphics,意思为可缩放的矢量图 2.位图和矢量图 在计算机中有两种图形, 一种是位图, 一种是矢量图 2.1 ...

  3. opencv 基本绘图功能 画直线 画圆 给图像添加文字等

    直线 矩形 圆 椭圆 多边形 多条直线 图像上写文字 实验 import cv2 as cv import numpy as np# 创建一副黑色的图片 img = np.zeros((512, 51 ...

  4. OpenCV在图像上画线、矩形、椭圆、多边形、填充的多边形、圆、显示文字

    OpenCV在图像上随机画直线.椭圆.多边形.圆.显示文字 代码如下: /*** @file Drawing_2.cpp* @brief Simple sample code*/#include &l ...

  5. Glut绘制直线和圆

    这个学期报了学校开设的计算机图形学课程,由于前一个月老师讲的都太抽象完全不知道在说啥--于是我的入门现在才刚刚开始.最近的一节课教授了基本图元的生成算法,留的作业是使用OpenGL或者DirectX实 ...

  6. iOS开发之Quartz2D 二:绘制直线,曲线,圆弧,矩形,椭圆,圆

    #import "DrawView.h"@implementation DrawView/*** 作用:专门用来绘图* 什么时候调用:当View显示的时候调用* @param re ...

  7. java画出斜椭圆_【转】画图java源代码,只画直线,矩形,椭圆

    /* *只画直线,矩形,椭圆,只能向右下角画 * *PainterPanel extends JPanel implements MouseListener *addMouseListener(thi ...

  8. python椭圆拟合_opencv python 轮廓特征/凸包/外接矩形/外接圆/拟合矩形/拟合直线/拟合圆...

    Contour Features 1 图像的矩 cv2.moments() 图像的矩可以帮助计算物体的某些特征,如对象的质心,对象的区域等. 代码: import cv2 import numpy a ...

  9. opencv 学习第三课 画线段 圆 椭圆 矩形 多边形 插入文字 代码注释版 保证你每一行都能读懂

    import numpy as np import cv2 as cv # 创建一张大小为512×512,通道数为3的黑色的图片 img = np.zeros((512,512,3), np.uint ...

最新文章

  1. 数据库名、实例名、数据库域名、全局数据库名、服务名,
  2. 数组反向遍历ios_iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式
  3. SAP Marketing Cloud功能简述(二) Target Group
  4. 【原理+实战+视频+源码】docker映射端口教程
  5. windows 7/2008系统字体变成黑体解决
  6. 三峡大学学生选课系统_201014119_赵敏_三峡大学学生选课系统.doc
  7. WinHex数据恢复使用教程
  8. 一、super slomo介绍
  9. 抖音·某无关痛痒的信息泄露接口
  10. STM32f4日记9之LD3320语音识别(您的私人语音助手MICRO)
  11. 安卓项目迁移androidX(为何需要迁移,迁移遇到的问题及解决),必须迁移,早动早省事
  12. 基于程序员职业对于婚配问题的研究——程序员为何单身?
  13. 浅谈青年在选择职业时的考虑
  14. [源码和文档分享]基于JAVA实现的图形化页面置换算法
  15. 如何评价微软在数据中心使用FPGA代替传统CPU的做法?
  16. 单片机数码管显示实操
  17. python 多线程内子线程结束后执行主线程
  18. iframe框架内嵌vue项目:Blocked a frame with origin http://xxxx from accessing a cross-origin iframe.解决办法
  19. 先睹为快:甲骨文NoSQL数据库
  20. X86汇编学习小结----cmp 完整版本

热门文章

  1. 微信小程序实现字体渐变
  2. Python3 pyttsx3 文字播放
  3. 升级php7后的报错处理
  4. [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL
  5. STM32微控制器SPI接口NSS管理分析
  6. 将图片压缩至指定大小Kb(Thumbnailator)
  7. 杭电计算机学硕专硕2019,2019杭电计算机考研总结
  8. 淘宝彩蛋--CSS3、Console、web彩蛋指南
  9. matlab中绘制一个sin函数曲线
  10. 关于LCD1602单独清除某一行的问题