画图函数

(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》笔记——关于一些画图的函数的更多相关文章

  1. Opencv笔记(四)——绘图函数

    常用的绘图函数有: cv2.line()       cv2.circle()        cv2.rectangle()      cv2.ellipse()       cv2.putText( ...

  2. php学习零散笔记—字符串分割、fetch函数和单双引号。

    1 字符串分割——split()函数和preg_split()函数 split — 用正则表达式将字符串分割到数组中——貌似PHP5.3以上已不赞成使用 array split ( string $p ...

  3. 基于OpenCv的人脸检测、识别系统学习制作笔记之一

    基于OpenCv从视频文件到摄像头的人脸检测 在OpenCv中读取视频文件和读取摄像头的的视频流然后在放在一个窗口中显示结果其实是类似的一个实现过程. 先创建一个指向CvCapture结构的指针 Cv ...

  4. ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring

    接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...

  5. python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法

    python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法 在Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数 ...

  6. APUE学习笔记——10.9 信号发送函数kill、 raise、alarm、pause

    转载注明出处:Windeal学习笔记 kil和raise kill()用来向进程或进程组发送信号 raise()用来向自身进程发送信号. #include <signal.h> int k ...

  7. Flutter学习笔记(4)--Dart函数

    如需转载,请注明出处:Flutter学习笔记(4)--Dart函数 Dart是一个面向对象的语言,所以函数也是对象,函数属于Function对象,函数可以像参数一样传递给其他函数,这样便于做回调处理: ...

  8. Objective-C学习笔记 利用协议实现回调函数

    来源:http://mobile.51cto.com/iphone-278354.htm Objective-C学习笔记 利用协议实现回调函数是本文要介绍的内容,主要是实现一个显示文字为测试的视图,然 ...

  9. 《学习opencv》笔记——基本数据结构,CvMat,矩阵訪问

        老板让让做一个东东.输入端要用到opencv顺便就来学习一下.买了本书<学习opencv>翻来一看,opencv1.0,去官网上一看.opencv2.49,瞬间有种蛋碎的赶脚.看着 ...

随机推荐

  1. 12.模板别名以及auto定义返回值

    #include <iostream> #include <array> using namespace std; //定义返回值类型 template<class T1 ...

  2. 微信支付v2开发(10) 全网发布

    关键字:微信公众平台 微信支付 全网发布 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/wxpay-publish.html 在这篇微信公众平台开发教程中, ...

  3. 原生js大总结七

    061.如何获取父级节点.上一个子级节点.下一个子级节点    nextElementSibling  后一个兄弟元素  (如果没有是null)    previousElementSibling   ...

  4. SpringMVC学习总结(2)——SpringMVC返回json配置

    <!-- 避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" c ...

  5. [置顶] WebService学习总结(3)——使用java JDK开发WebService

    一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...

  6. 关于Clipboard和GlobalAlloc函数的关系

    一句话:为了满足进程间通信,使用了clipboard的方法,clipboard是系统提供的一段任何进程都可以访问的公共内存块,malloc 和new分配的动态内存块是在进程的私有地址空间分配的,所以必 ...

  7. 【例题 4-1 UVA - 1339】 Ancient Cipher

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 位置其实都没关系了. 只要每个字母都有对应的字母,它们的数量相同就可以了. 求出每种字母的数量. 排序之后. 肯定是要一一对应的. ...

  8. 【Codeforces Round #299 (Div. 2) E】Tavas and Pashmaks

    [链接] 我是链接,点我呀:) [题意] 游泳+跑步比赛. 先游泳,然后跑步. 最先到终点的人是winner. 但是现在游泳的距离和跑步的距离长度都不确定. S和R. 给你n个人,告诉你每个人游泳的速 ...

  9. VIM使用说明

    [vim 命令-移动光标]:h 的鍵位于左邊,每次按下就會向左移動.l 的鍵位于右邊,每次按下就會向右移動.j 鍵看起來很象一支尖端方向朝下的箭頭.k朝上移动. [vim 命令-启动和退出]:1. 請 ...

  10. [Angular HTML] Overwrite input value, String.fromCharCode & input.selectionStart

    @HostListener('keydown', ['$event', '$event.keyCode']) onKeyDown($event: KeyboardEvent, keyCode) { i ...