环境:CentOS7
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)

$ pkg-config --modversion opencv
2.4.13

效果图(前后对比):

    

代码:

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include<cv.h>
#include<highgui.h>
#include<iostream>
using namespace std;int main(int argc,char**argv)
{/********图像转换********//*字节图像的灰度图-彩色转换*/IplImage *img1 = cvLoadImage("wongrgb.jpg");// 绘制矩形:在点 1和 2之间绘制一矩形,边线用红色、宽度cvRectangle(img1, cvPoint(10,10), cvPoint(70,70), cvScalar(0,255,0), 3);// 绘制圆形:圆心为、半径. 圆周颜色、宽度cvCircle(img1, cvPoint(100,100), 20, cvScalar(255,255,0), 2);// 绘制线段:在 (100,100) 和 (200,200) 之间、线宽为 1 的绿色线段cvLine(img1, cvPoint(100,100), cvPoint(200,200), cvScalar(0,0,255), 3);/*绘制一组线段:*//*void cvPolyLine( CvArr* img, CvPoint** pts, int* npts, int contours, int is_closed,CvScalar color, int thickness=1, int line_type=8, int shift=0 );img 图像。pts 折线的顶点指针数组。npts 折线的定点个数数组。也可以认为是pts指针数组的大小contours 折线的线段数量。is_closed 指出多边形是否封闭。如果封闭,函数将起始点和结束点连线。color 折线的颜色。thickness 线条的粗细程度。line_type 线段的类型。参见cvLine。shift 顶点的小数点位数*/CvPoint curve1[]={10,10, 10,100, 100,100, 100,10};CvPoint curve2[]={30,30, 30,130, 130,130, 130,30, 150,10};CvPoint* curveArr[2]={curve1, curve2};int nCurvePts[2]={4,5};int nCurves=2;int isCurveClosed=1;int lineWidth=2;cvPolyLine(img1,curveArr,nCurvePts,nCurves,isCurveClosed,cvScalar(0,255,255),lineWidth);/*绘制一组填充颜色的多边形:*//*cvFillPoly用于一个单独被多边形轮廓所限定的区域内进行填充。函数可以填充复杂的区域,例如,有漏洞的区域和有交叉点的区域等等。void cvFillPoly( CvArr* img, CvPoint** pts, int* npts, int contours,CvScalar color, intline_type=8, int shift=0 );img 图像。pts 指向多边形的数组指针。npts 多边形的顶点个数的数组。contours 组成填充区域的线段的数量。color 多边形的颜色。line_type 组成多边形的线条的类型。shift 顶点坐标的小数点位数。*/cvFillPoly(img1,curveArr,nCurvePts,nCurves,cvScalar(0,255,255));/*文本标注:*//*可用的字体类型有: CV_FONT_HERSHEY_SIMPLEX, CV_FONT_HERSHEY_PLAIN,CV_FONT_HERSHEY_DUPLEX, CV_FONT_HERSHEY_COMPLEX, CV_FONT_HERSHEY_TRIPLEX,CV_FONT_HERSHEY_COMPLEX_SMALL, CV_FONT_HERSHEY_SCRIPT_SIMPLEX,CV_FONT_HERSHEY_SCRIPT_COMPLEX,*/CvFont font;double hScale=1.0;double vScale=1.0;lineWidth=2;cvInitFont(&font,CV_FONT_HERSHEY_SIMPLEX|CV_FONT_ITALIC, hScale,vScale,0,lineWidth);cvPutText (img1,"Comment",cvPoint(20,100), &font, cvScalar(8,0,0));cvShowImage("win1",img1);cvSaveImage("wongrgb1.jpg",img1);cvWaitKey(0);return 0;
}

编译与运行:

$ make
g++ main.cpp `pkg-config --cflags --libs opencv`
$ ./a.out 

代码参考:《OpenCV中文参考手册》

OpenCV学习笔记:绘图指令(矩形、圆、线、文本标注)相关推荐

  1. Opencv学习笔记(二十六)文本检测mser+非极大值抑制nms

    文章目录 mser检测 nms非极大值抑制 代码 mser检测 nms非极大值抑制 代码 import cv2 import matplotlib.pyplot as plt import numpy ...

  2. QT+opencv学习笔记(5)——霍夫直线检测、圆检测及椭圆检测

    开发环境为:win10+QT5.8+opencv3.2 Hough变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛.最基本的Hough变换是从黑白图像中检测直线,还可以经过改进检测圆.椭 ...

  3. OpenCV学习笔记(二十一)——绘图函数core OpenCV学习笔记(二十二)——粒子滤波跟踪方法 OpenCV学习笔记(二十三)——OpenCV的GUI之凤凰涅槃Qt OpenCV学习笔记(二十

    OpenCV学习笔记(二十一)--绘图函数core 在图像中,我们经常想要在图像中做一些标识记号,这就需要绘图函数.OpenCV虽然没有太优秀的GUI,但在绘图方面还是做得很完整的.这里就介绍一下相关 ...

  4. OpenCV 学习笔记03 boundingRect、minAreaRect、minEnclosingCircle、boxPoints、int0、circle、rectangle函数的用法...

    函数中的代码是部分代码,详细代码在最后 1 cv2.boundingRect 作用:矩形边框(boundingRect),用于计算图像一系列点的外部矩形边界. cv2.boundingRect(arr ...

  5. OpenCV学习笔记(十八):凸包,最小包围区域算子:convexHull(),minAreaRect(),minEnclosingTriangle(),minEnclosingCircle()

    OpenCV学习笔记(十八):凸包,最小包围区域算子:convexHull(),minAreaRect(),minEnclosingTriangle(),minEnclosingCircle() 1. ...

  6. opencv学习笔记02

    原创博文地址:opencv学习笔记02 OpenCV-Python教程:11.图片阈值 https://www.jianshu.com/p/267a32ad0a23 cv2阈值处理:https://b ...

  7. 某人写的openCV学习笔记

    原文地址:某人写的openCV学习笔记作者:拔剑 http://blog.csdn.net/thefutureisour 我的OpenCV学习笔记(25):c++版本的高斯混合模型的源代码完全注释 之 ...

  8. 某人写的openCV学习笔记_拔剑-浆糊的传说_新浪博客

    http://blog.csdn.net/thefutureisour 我的OpenCV学习笔记(25):c++版本的高斯混合模型的源代码完全注释 之前看到过C版本的,感觉写的很长,没有仔细看,但是C ...

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

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

  10. OpenCV学习笔记(十七):查找并绘制轮廓:findContours(),drawContours(),approxPolyDP()

    OpenCV学习笔记(十七):查找并绘制轮廓:findContours() 1.findContours() 函数 该函数使用Suzuki85算法从二值图像中检索轮廓.轮廓线是一种用于形状分析.目标检 ...

最新文章

  1. gearman mysql udf
  2. 广东省哈工大(深圳)赛区赛事活动安排
  3. android权限控制泄露,Android应用的权限泄露分析
  4. 前端开发技巧-那些不常见但十分有效的小玩意
  5. 两个不同分支之间的代码合并
  6. java 中的override overload 比较
  7. java 异常 日志_java中的异常、断言、日志(一)
  8. Web前端工作笔记009---IE8兼容_new Date兼容方法
  9. zip、rar文件格式
  10. 赢者通吃自编码器(WTA-AE)
  11. 什么是一致性Hash算法? 1
  12. 2015年讲师评选正式开始,培训行业讲师年终总结啦!!
  13. JS编程建议——16:防止switch贯穿
  14. 接触mybatisplus单页500条限制_单页网站制作教程,单页网站设计五大技巧
  15. KingbaseES V8R6 集群运维系列 -- 命令行部署repmgr管理集群+switchover测试
  16. 《名字竞技场 V3.0》 组队功能开放!
  17. 学习java随堂练习-20220614
  18. jvisualvm 连接 docker 监控springboot jvm
  19. 支持电竞比分实时查询的软件~和比分网之间的对比
  20. 华为GAUSSDB集成

热门文章

  1. # 2017-2018-1 20155336《信息安全技术》实验二——Windows口令破解
  2. Fibbonacci Number(杭电2070)
  3. 谈MicroMessageTest的开始创建
  4. dotfuscator初步
  5. 解决VMWare Workstation 响应慢
  6. 班图ubuntu linux 5.1相当好用,windows危险了!
  7. image unity 拉伸_Unity UGUI基础之Image
  8. 页游修改攻击力如何同步服务器,我的世界 怎么修改武器攻击力和属性 像服务器那样!!...
  9. 王伟storm_王伟 - 南京大学 - 化学化工学院
  10. 接口返回数据太大_Vue实战044:Mockjs模拟服务器Api接口并返回数据详解