绘制点和圆

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

画圆画点都是使用circle()函数来画,点就是圆,我们平常所说的圆只不过是半径大一点而已。

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>using namespace std;
using namespace cv;//画圆画点都是使用circle()函数来画,点就是圆,我们平常所说的圆只不过是半径大一点而已。
int main()
{Mat img = imread("lol16.jpg");  //画空心点Point p(20, 20);//初始化点坐标为(20,20)circle(img, p, 2, Scalar(0, 255, 0)); //第三个参数表示点的半径,第四个参数选择颜色。这样子我们就画出了绿色的空心点//这种初始化点的方式也可以Point p2;p2.x = 100;p2.y = 100;//画实心点circle(img, p2, 3,Scalar(255,0,0),-1); //第五个参数我设为-1,表明这是个实点。//画空心圆Point p3(300, 300);circle(img,p3,100,Scalar(0,0,255),3);//第五个参数我们调高点,让线更粗//画实心圆Point p4;p4.x = 600;p4.y = 600;circle(img, p4, 100, Scalar(120, 120, 120), - 1);imshow("画点画圆", img);waitKey();return 0;
}

绘制椭圆

void ellipse(Mat& img, Point center,Size axes, double angle, double startAngle, double endAngle, const Scalar& color,int thickness=1, int lineType=8, int shift=0)
  • img:图像。
  • center:椭圆圆心坐标。
  • axes:轴的长度。
  • angle:偏转的角度。
  • start_angle:圆弧起始角的角度。
  • end_angle:圆弧终结角的角度。
  • color:线条的颜色。
  • thickness:线条的粗细程度。
  • line_type:线条的类型,见CVLINE的描述。
  • shift:圆心坐标点和数轴的精度。
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>using namespace std;
using namespace cv;int main()
{Mat img = imread("lol16.jpg");  int thickness = 3;int lineType = 8;double angle = 30;  //椭圆旋转角度//第三个参数Size中的两个参数分别是横轴长、纵轴长。//同理,thickness若是小于0,表示实心ellipse(img,Point(100, 100),Size(90, 60),angle,0,360,Scalar(255, 255, 0),thickness,lineType);imshow("画椭圆", img);waitKey();return 0;
}

绘制矩形

 void rectangle(Mat& img,Rect rec, const Scalar&color, intthickness=1, intlineType=8,intshift=0 )
  • img:图像。
  • rec:表征矩形的位置和长宽。
  • color:线条颜色 (RGB) 或亮度(灰度图像 )(grayscale image)。
  • thickness:组成矩形的线条的粗细程度。取负值时(如CV_FILLED)函数绘制填充了色彩的矩形。
  • line_type:线条的类型。见cvLine的描述
  • shift:坐标点的小数点位数。
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>using namespace std;
using namespace cv;int main()
{Mat img = imread("lol16.jpg");  Rect r(250, 250, 120, 200);rectangle(img, r, Scalar(0, 255, 255), 3);imshow("画矩形", img);waitKey();return 0;
}

绘制直线

void line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color,int thickness = 1, int lineType = LINE_8, int shift = 0);
  • img:图像.
  • pt1:线条起点.
  • pt2:线条终点.
  • color:线条颜色.
  • thickness:线条宽度.
  • lineType:线型
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>using namespace std;
using namespace cv;int main()
{Mat img = imread("lol16.jpg");  Point p1(100, 100);Point p2(758, 50);line(img, p1, p2, Scalar(33, 33, 133), 2);//画第二条线line(img, Point(300, 300), Point(758, 300), Scalar(89, 90, 90), 3);imshow("画矩形", img);waitKey();return 0;
}

最后来个综合的图形展示。

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>using namespace std;
using namespace cv;int main()
{Mat img = Mat::zeros(Size(800,600), CV_8UC3);img.setTo(255);Point p1(100, 100);Point p2(758, 50);line(img, p1, p2, Scalar(0, 0, 255), 2);line(img, Point(300, 300), Point(758, 400), Scalar(0, 255, 255), 3);Point p(20, 20);//初始化点坐标为(20,20)circle(img, p, 2, Scalar(0, 255, 0),-1);Point p4;p4.x = 600;p4.y = 600;circle(img, p4, 100, Scalar(120, 120, 120), -1);int thickness = 3;int lineType = 8;double angle = 30;  //椭圆旋转角度ellipse(img, Point(100, 100), Size(90, 60), angle, 0, 360, Scalar(255, 255, 0), thickness, lineType);Rect r(250, 250, 120, 200);rectangle(img, r, Scalar(0, 255, 255), 3);imshow("大杂烩", img);waitKey();return 0;
}

OpenCV探索之路(十四):绘制点、直线、几何图形相关推荐

  1. 精通Android自定义View(十四)绘制水平向右加载的进度条

    1引言 1 精通Android自定义View(一)View的绘制流程简述 2 精通Android自定义View(二)View绘制三部曲 3 精通Android自定义View(三)View绘制三部曲综合 ...

  2. OpenCV 【十五】绘直线/椭圆/矩形/圆及其填充

    目录 1. 概况 2. 原理 2.1 Point 2.2 Scalar 3. 代码 4.结果 1. 概况 如何用 Point 在图像中定义 2D 点 如何以及为何使用 Scalar 用OpenCV的函 ...

  3. OpenCV(十四)图像阈值

    目录 一.基础理论 1.二进制阈值化 2.反二进制阈值化 3.截断阈值化 4.阈值化为0 5.反阈值化为0 函数 代码 效果 参考答案 一.基础理论 在二维数字图像中,其每个像素点对应了不同的像素值, ...

  4. python如何做四象图_(Python)从零开始,简单快速学机器仿人视觉Opencv—第十四节:图像梯度...

    事先说明 图像梯度原理:简单来说就是求导 OpenCV提供了三种不同的梯度滤波器,或者说高通滤波器:Sobel,Scharr和Laplacian.Sobel和Scharr是求一阶或二阶导数.Schar ...

  5. OpenCV 【十四】改变图像的对比度和亮度高度关联章节:OpenCV 【十】——Gamma校正 ——图像灰度变化

    目录 0 提问 1.1 原理 trick: 1.2 代码 1.3 结果 0 提问 访问像素值 用0初始化矩阵 saturate_cast 是做什么用的,以及它为什么有用 1.1 原理 图像处理 一般来 ...

  6. 【OpenCV新手教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26977557 作者:毛星云(浅墨) ...

  7. 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26977557 作者:毛星云(浅墨) ...

  8. OpenCV学习笔记(十一)(十二)(十三)(十四)(十五)

    OpenCV学习笔记(十一)--谈谈像素的类型和对Templates的限制使用 Templates是c++的一个很强大的特征,可以是数据结构更加安全高效.但也会增加编译时间和代码的长度,当函数被频繁调 ...

  9. python+OpenCV图像处理(三)绘制简单的几何图形、显示文字

    绘制简单的几何图形.显示文字 (一)绘制直线和矩形 img = np.zeros([512, 512, 3]) # line函数用来画直线,第一个参数可以理解为画布矩阵, # 第二个参数pt1是直线的 ...

  10. OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack()

    OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack() 参考博客: Harris角点检测原理详解 Harri ...

最新文章

  1. usaco Number Triangles
  2. Java 进阶 ——2019 计划要读的书
  3. 2.struts1.x中的异常处理
  4. XSL学习笔记6 XSLT内置模板规则
  5. .NET Conf 2019 大会上发布.NET Core 3.0
  6. python总结简短_Python简单的基础总结
  7. 技术人生:希望有生之年开发一个“自己的解释语言”
  8. 【jiasuba】巧妙运用win键
  9. Jquery获得服务器控件的方法
  10. 知更鸟begin主题常见问题
  11. 接口测试之Postman使用全图文指南(原来使用Postman测试API接口如此简单)
  12. 自动控制原理分析工作原理以及方框图做题过程
  13. 读《An Adaptable and Extensible Geometry Kernel》
  14. 移动端环境搭建--2
  15. gregorian(格里高力)历转换公历
  16. JavaScript【彩票】
  17. 【考试记录】Apsara Clouder大数据技能认证:MOOC网站日志分析
  18. 【北亚服务器数据恢复】Infortrend ESDS系列服务器raid6数据恢复
  19. 来自千里之外祖国的关爱
  20. java ueditor 图片上传加水印_百度ueditor上传图片加水印的例子

热门文章

  1. 150929-拖延高于懒-HTML(End)
  2. selenium--下拉列表选择
  3. M8TSC预览版0.5.1发布
  4. OO思想(只留做自己看理解)
  5. Extract Any Audio Pro for Mac - mp3格式转换器
  6. 在MacOS Big Sur中使用Safari 翻译功能的方法
  7. Android7.0中关于popupWindow的bug解决办法
  8. Office2021 和Microsoft 365分不清?这样选最划算
  9. 删数问题(Noip1994)--贪心
  10. spring boot启动加载外部配置文件