绘制点和圆

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. 深度丨谈谈人工智能的潜力、实践意义和目前存在的障碍
  2. Gartner魔力象限到底有何“魔力”?
  3. Android之解决点击PopupWindow外部不消失并且不穿透事件
  4. linux怎么使多条命令同时执行
  5. 在线文本行固定长度填充工具
  6. LoadRunner 常用C语言函数使用举例说明
  7. 非常详细的讲解车牌识别easypr
  8. 如何用MAYA 制作人物动画 使人物动作更加真实流畅
  9. IDM2018年最新版破解方法
  10. 苹果手机测试版软件app,APP苹果测试版UDID设置
  11. mysql实验三报告总结_数据库安全性实验报告的总结(共9篇).docx
  12. pdf转换成html后打印不清晰,图片转换成pdf后很模糊不清晰怎么办?
  13. 机器学习理论基础---1
  14. eNSP配置ospf——三台路由器
  15. 艾兰岛编辑器-路径点
  16. I-Deas TMG 培训资料 (9)
  17. VMware虚拟机下安装Ubuntu系统并配置远程桌面连接
  18. 一卡通系统人员培训方案
  19. 2003系统dhcp服务器默认租期,Windows 2000和Windows Server 2003下DHCP服务器的租约和授权...
  20. python一键导出百度网盘目录文件

热门文章

  1. css 文字超出变 ... 点点点
  2. Mysql查询语句使用select.. for update导致的数据库死锁分析
  3. 一个简单的WeakList的实现
  4. 戴爾一體機欲與蘋果決高下
  5. 大恒水星相机硬触发测试
  6. 使用边缘信息提升全局阈值分割的性能
  7. Mac资讯:macos big sur正式版推送 macOS 11 Big Sur有哪些不兼容的软件?
  8. 【Flutter】基础组件【09】Button
  9. TensorFlow的新型模型优化工具包可使模型速度提高3倍
  10. IOS系统定时APP