opencv各种绘图 直线 矩形 圆 椭圆
画图函数
(1)直线cvLine函数
其结构
void cvLine(//画直线
CvArr* array,//画布图像
CvPoint pt1,//起始点
CvPoint pt2,//终点
CvScalar color,//颜色
int thickness = 1,//宽度
int connectivity = 8//反走样
);
实例代码
#include <cv.h>
#include <highgui.h>
#include <stdio.h> int main(int argc, char** argv)
{
IplImage *src1;
src1 = cvLoadImage("10.jpg"); cvLine(src1,cvPoint(20,20),cvPoint(250,250),CV_RGB(255,0,0),8); cvShowImage( "原图", src1);
cvWaitKey();
return 0;
}
输出结果

(2)矩形cvRectangle函数
其结构
void cvRectangle(//画矩形
CvArr* array,//画布图形
CvPoint pt1,//起始点
CvPoint pt2,//终点
CvScalar color,//颜色
int thickness = 1,//宽度
);
实例代码
#include <cv.h>
#include <highgui.h>
#include <stdio.h> int main(int argc, char** argv)
{
IplImage *src1;
src1 = cvLoadImage("10.jpg"); cvRectangle(src1,cvPoint(20,20),cvPoint(200,200),CV_RGB(0,255,0),8); cvShowImage( "原图", src1);
cvWaitKey();
return 0;
}
输出结果

(3)圆形cvCircle函数
其结构
void cvCircle(//画圆
CvArr* array,//画布图像
CvPoint cevter,//圆心
int radius,//半径
CvScalar color,//颜色
int thickness = 1,//宽度
int connectivity = 8//反走样
);
实例代码
#include <cv.h>
#include <highgui.h>
#include <stdio.h> int main(int argc, char** argv)
{
IplImage *src1;
src1 = cvLoadImage("10.jpg"); cvCircle(src1,cvPoint(150,150),100,CV_RGB(0,0,255),5); cvShowImage( "原图", src1);
cvWaitKey();
return 0;
}
输出结果

(4)椭圆cvEllipse函数
其结构
void cvEllipse(//画椭圆
CvArr* img,//画布图像
CvPoint center,//中心点
CvSize axes,//长短轴
double angle,//偏离主轴角度
double start_angle,//弧线開始位置
double end_angle,//弧线结束位置
CvScalar color,//颜色
int thickness = 1,//宽度
int line_type = 8//
);
实例代码
#include <cv.h>
#include <highgui.h>
#include <stdio.h> int main(int argc, char** argv)
{
IplImage *src1;
src1 = cvLoadImage("10.jpg"); cvEllipse(src1,cvPoint(150,150),cvSize(150,50),45,0,360,CV_RGB(255,0,0),3); cvShowImage( "原图", src1);
cvWaitKey();
return 0;
}
输出结果

(5)多边形函数
1.cvFillPoly函数
其结构
void cvFillPoly(//画多个实心多边形
CvArr* img,//画布图像
CvPoint** pts,//点序列
int* npt,//计数点数组
int contours,//显示几个多边形
CvScalar color,//颜色
int line_type = 8
);
2.cvFillConvexPoly函数
其结构
void cvFillConvexPoly(//画一个实心多边形
CvArr* img,//画布图像
CvPoint* pts,//点序列
int npt,//计数点数组
CvScalar color,//颜色
int line_type = 8
);
3.cvPolyLine函数
void cvFillPoly(//画多个空心多边形
CvArr* img,//画布图像
CvPoint** pts,//点序列
int* npt,//计数点数组
int contours,//显示几个多边形
int is_closed,//是否从上个多边形尾点開始
CvScalar color,//颜色
int thickness = 1,//宽度
int line_type = 8
);
实例代码
#include <cv.h>
#include <highgui.h>
#include <stdio.h> int main(int argc, char** argv)
{
IplImage *src1,*src2,*src3;
src1 = cvLoadImage("7.jpg");
src2 = cvLoadImage("8.jpg");
src3 = cvLoadImage("9.jpg"); int arr[3]= {4,4,4}; CvPoint ** pt =new CvPoint*[3]; pt[0] = new CvPoint[4];
pt[0][0] = cvPoint(10,10);
pt[0][1] = cvPoint(210,10);
pt[0][2] = cvPoint(210,210);
pt[0][3] = cvPoint(10,210);
pt[1] = new CvPoint[4];
pt[1][0] = cvPoint(10,310);
pt[1][1] = cvPoint(210,310);
pt[1][2] = cvPoint(210,510);
pt[1][3] = cvPoint(10,510);
pt[2] = new CvPoint[4];
pt[2][0] = cvPoint(310,10);
pt[2][1] = cvPoint(410,10);
pt[2][2] = cvPoint(410,210);
pt[2][3] = cvPoint(310,210); cvPolyLine(src1, pt, arr, 3, 1, CV_RGB(0,255,0),5); cvFillPoly(src2, pt,arr,3,CV_RGB(250,0,0)); cvFillConvexPoly(src3,pt[0],4,CV_RGB(0,0,255)); cvShowImage( "原图1", src1);
cvShowImage( "原图2", src2);
cvShowImage( "原图3", src3);
cvWaitKey();
return 0;
}
输出结果

(6)绘制文字cvPutText函数
其结构
void cvPutText(//绘制文字
CvArr* img,//画图图像
const char* text,//文字内容
CvPoint origin,//文字起始位置
const CvFont* font,//文字字体设置
CvScalar color//颜色
);
实例代码
#include <cv.h>
#include <highgui.h>
#include <stdio.h> int main(int argc, char** argv)
{
IplImage *src1,*src2,*src3;
src1 = cvLoadImage("10.jpg"); char* str = "I am a student!"; CvFont* cf = new CvFont(); cvInitFont(cf,CV_FONT_HERSHEY_SIMPLEX,1.0,0.5); cvPutText(src1,str,cvPoint(50,100),cf,CV_RGB(255,0,0)); cvShowImage( "原图1", src1);
cvWaitKey();
return 0;
}
输出结果

to be continued
opencv各种绘图 直线 矩形 圆 椭圆的更多相关文章
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数005·graphics-obj,基本绘图单元,包括线段、矩形、椭圆、圆形
<zw版·Halcon-delphi系列原创教程> Halcon分类函数005·graphics-obj,基本绘图单元,包括线段.矩形.椭圆.圆形 graphics-obj,基本绘图单元, ...
- OpenCV 学习笔记03 直线和圆检测
检测边缘和轮廓不仅重要,还经常用到,它们也是构成其他复杂操作的基础. 直线和形状检测与边缘和轮廓检测有密切的关系. 霍夫hough 变换是直线和形状检测背后的理论基础.霍夫变化是基于极坐标和向量开展的 ...
- 【python+opencv】直线检测+圆检测
Python+OpenCV图像处理—— 直线检测 直线检测理论知识: 1.霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进 ...
- opencv python:直线检测 与 圆检测
霍夫直线变换介绍 霍夫圆检测 现实中: example import cv2 as cv import numpy as np # 关于霍夫变换的相关知识可以看看这个博客:https://blog.c ...
- Python OpenCV的绘图功能简介
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:大Z 在图像中我们经常需要用到将某个局部特征画出来,比如物体检测,物 ...
- 吴裕雄--天生自然python学习笔记:python OpenCV 基本绘图
Open CV 提供了绘制直线.圆形.矩形等基本绘 图的功能 . Open CV 画直线的语法为: 在画布上添加文字的语法为 : 用 Open CV 绘制基本图形 以 OpenCV 基本绘图绘制各种图 ...
- hough变换检测直线和圆
图像测量和机器视觉作业: 提取图像中的直线和点的位置坐标,将其按一定顺序编码存入一文本文件,并在原图像上叠加显示出来. 下午实验了一下: 程序环境:vs2013(活动平台为x64)+opencv3.1 ...
- opencv::轮廓周围绘制矩形框和圆形框
基于RDP算法实现,目的是减少多边形轮廓点数 approxPolyDP(InputArray curve, OutputArray approxCurve, double epsilon, bool ...
- 简单几何(直线与圆的交点) ZOJ Collision 3728
题目传送门 题意:有两个一大一小的同心圆,圆心在原点,大圆外有一小圆,其圆心有一个速度(vx, vy),如果碰到了小圆会反弹,问该圆在大圆内运动的时间 分析:将圆外的小圆看成一个点,判断该直线与同心圆 ...
随机推荐
- Python 库/模块/工具收集
1 算法 1.1 字符串处理 re 正则表达式的标准库. StringIO / cStringIO 以读写文件的方式来操作字符串(有点类似于内存文件). cStringIO 是 C 语言实现的,提供高 ...
- Mysql InnoDB 数据更新导致锁表
一.数据表结构 CREATE TABLE `jx_attach` ( `attach_id` int(11) NOT NULL AUTO_INCREMENT, `feed_id` int(11) DE ...
- reveal 使用注意事项
**将libReveal.dylib 和 Reveal.framework 继承进项目后,一定要在 Build Phases->Link Binary With Libraries中将二者删除. ...
- minipad2
minipad2 是一款小巧的纯文本笔记软件,系统资源占用少,集笔记 / 便笺.计算器.备忘录.电子词典.快启面板.通讯录.文字模板.多重剪贴板等多种功能于一体,所有内容自动保存,关闭时自动记忆最后的 ...
- jsp使用c:forEach报错 javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext的问题
今天发现了一个折磨我一天的问题: 在jsp文件中使用 <c:forEach items="${checkResult}" var="item"> & ...
- LEAPMOTION开发UI专题(1)
非常 抱歉的是,之前说的LEAP/UI框架设计可能仅仅有两篇 由于个人时间实在是不同意 这个问题假设展开去写的话 那么说写本书都是不为过的 且由于内容改动非常是杂乱 所以我第一篇文章用来介绍LEAP预 ...
- 【PMP】项目和运营的区别
运营管理关注产品的持续性生产和服务的持续运作. 项目与运营会存在产品生命周期的不同时点交叉,例如: 在产品开发.产品升级或提高产量时: 在改进运营或产品开发流程时: 在产品生命周期结束阶段: 在每个收 ...
- 四舍五入函数ROUND(x,y)
四舍五入函数ROUND(x,y) 参数: x:数据 y:需要保留的小数点位数 ROUND(x,y)函数返回最接近于参数x的数,其值保留到小数点后面y位,若y为负值,则将保留x值到小数点左边y位. my ...
- OpenWrt 18.06.1的ss-redir, 以及在乐视超4 X40上看Youtube
在18.06里面要设个透明代理, 就一直不成功 各种TIME OUT, PRIVATE SSL ERROR, 换回旧版的luci-app-shadowsocks也不行. 我就一直想, 到底这东西还能有 ...
- CoffeeScript简介 <一>
介绍 coffeeScript是一种轻量级的编程语言,可以用编译器生成原生javascript代码.它简化了许多javascript繁琐的方式,可以让你用简单的方式直接使用一行程序代表javascri ...