OpenCV 中的绘图函数

画线

首先要为画的线创造出环境,就要生成一个空的黑底图像

  1. img=np.zeros((512,512,3), np.uint8)
这是黑色的底,我们的画布,我把窗口名叫做img

np.zeros()有两个参数,一个是创建的图片矩阵大小,另一个是数据类型

512,512是像素(第一个512像素高,第二个是512像素宽),3指BGR三种颜色

uint8是用0-255表示所有颜色。

  1. cv2.line(img,(0,0),(511,511),(255,0,0),5)

这个函数有5个参数,img是图像名称,起点坐标,终点坐标,(255,0,0)是蓝色,5是线的宽度

会画一条 从左上方到右下角的蓝色线段。

画线两要素:起点与终点。

画一条
从左上方到右下角的蓝色线段。

画矩形

  1. cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)

这个函数有5个参数,图像名称,左上顶点坐标,右下顶点坐标,(0,255,0)是绿色,线宽为3

右上角画一个绿色的矩形

画矩形两要素:左上顶点和右下顶点坐标。

右上角画一个绿色矩形

画圆

  1. cv2.circle(img,(447,63), 63, (0,0,255), -1)

这个函数有5个参数,图像名称,圆心坐标,半径63,(0,0,255)红色,线宽为-1,当线宽-1时表示封闭图形的颜色填充。

在画的矩形中画一个圆,半径为128的一般63

画圆两要素:指定圆形的中心点坐标和半径大小

画圆
在矩形中画圆

画椭圆

  1. cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)

这个函数有8个参数:图像名称,中心点坐标,长轴长度,短轴长度,旋转角度,图像出现的部分(长轴顺时针方向起始的角度和结束角度)0,180是下半个椭圆,颜色数组这里255是蓝色,线宽

椭圆要素:1.是中心点的位置坐标 2.长轴和短轴的长度 3.椭圆沿逆时针方向旋转的角度 4.长轴顺时针方向起始的角度和结束角度

画半个椭圆

画多边形

  1. pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
  2. pts = pts.reshape((-1,1,2))
  3. img = cv2.polylines(img,[pts],True,(0,255,255),3)

这个函数有5个参数:图像名称,顶点列表(这个多边形在array中有四个顶点),True表示闭合,(0,255,255)是黄色,3是线宽

黄色多边形

在图片上添加文字

  1. font=cv2.FONT_HERSHEY_SIMPLEX
  2. cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2)

这个函数有八个参数,图像名称,字符串,坐标,字体,字号,(255,255,255)白色、线宽2

在图像上添加文字

汇总所有的图像吧!

所有图像在一起

现在上所有代码!


# -*- coding:utf-8 -*-
"""
Created on Sun Dec 29 18:15:27 2016

@author: Y

"""
import cv2
import numpy as np

img=np.zeros((512,512,3), np.uint8)

cv2.line(img,(0,0),(511,511),(255,0,0),5)

cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)

cv2.circle(img,(447,63), 63, (0,0,255), -1)

cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)

pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
img = cv2.polylines(img,[pts],True,(0,255,255),3)

font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2)

winname = 'img'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)

后面的显示的几行代码,窗口名是img,显示,销毁窗口,已经了然于心了。

休息休息吧,这章学完,我们在人脸识别等等识别上,就能画出更好的线条与图案了,不至于那么丑~

今天就到这了啦,欢迎下面留言哦,让我知道你来过,我是Y,晚安~

OpenCV中的绘图函数-OpenCV步步精深的更多相关文章

  1. 5、opencv中的绘图函数

    1.目标 a.学习使用 OpenCV 绘制不同几何图形 b. 你将会学习到这些函数: cv2.line(), cv2.circle(), cv2.rectangle(),cv2.ellipse(),c ...

  2. OpenCV中的绘图函数

    OpenCV可以用来绘制不同的集合图形,包括直线,矩形,圆,椭圆,多边形以及在图片上添加文字.用到的绘图函数包括 cv2.line(),cv2.circle(),cv2.rectangle() ,cv ...

  3. OpenCV:OpenCV中的 parallel_for 和opencv parallel_for_

    OpenCV使用OMP完成并行运算,在使用AdaBoost检测的时候,在cascadedetect.cpp 里面,大量使用 parallel_for_(Range(0, stripCount), Ca ...

  4. OpenCV中的新函数connectedComponentsWithStats使用

    主要内容:对比新旧函数,用于过滤原始图像中轮廓分析后较小的区域,留下较大区域. 关键字    :connectedComponentsWithStats 在以前,常用的方法是"是先调用 cv ...

  5. 【计算机视觉】OpenCV中直方图处理函数简述

    计算直方图calcHist 直方图是对数据集合的统计 ,并将统计结果分布于一系列提前定义的bins中.这里的数据不只指的是灰度值 ,统计数据可能是不论什么能有效描写叙述图像的特征. 如果有一个矩阵包括 ...

  6. Opencv中的阈值函数

    OpenCV基础——threshold函数的使用 图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出明显的黑白效果. 参数原型 参数说明 src:源图像,可以为8位的灰度 ...

  7. opencv中的exp32f函数

    exp32f opencv的exp函数和cmath的exp函数在精度上存在一定差异,通过查找源码,发现了这么一段实现.代码如下: 点击查看代码 #define EXPTAB_SCALE 6 #defi ...

  8. opencv中的缩放函数

    图像处理里面缩放操作是比较常见的: 最近邻插值:类似简单映射的处理方式,目标图像w1,h1,原始图像w0,h0,则在目标图像上的点(x,y)的像素点实际对应原始图上(x*w0/w1,y*h0/h1)的 ...

  9. OpenCV中的常用函数

    1.cvLoadImage:将图像文件加载至内存: 2.cvNamedWindow:在屏幕上创建一个窗口: 3.cvShowImage:在一个已创建好的窗口中显示图像: 4.cvWaitKey:使程序 ...

随机推荐

  1. CCNA基础知识摘录

    cisco设备的启动要点: 1.检测硬件(保存在rom) 2.载入软件(IOS)(保存在Flash) 3.调入配置文件(密码,IP地址,路由协议都保存在此)(此文件保存在NVRAM) 0x2102:正 ...

  2. 三种计算c#程序运行时间的方法

    三种计算c#程序运行时间的方法 第一种: 利用 System.DateTime.Now // example1: System.DateTime.Now method DateTime dt1 = S ...

  3. HTML5新增web存储方式

    客户端存储数据的两个对象为: 两个对象在使用方式没有任何区别,唯一的不同点蚀储存数据 的有效时间 ①localStorage - 没有时间限制的数据存储 除非手动删除,否则数据将一直保存在本地文件: ...

  4. 团队作业10--事后分析(Beta版本)

    设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件的作用是帮助用户实现准确快速的电子文档查重,我们对软件的定义是电子文档查重系统,即通过文 ...

  5. 团队作业4——第一次项目冲刺(Alpha版本)4.25

    团队作业4--第一次项目冲刺(Alpha版本) Day four: 会议照片 每日站立会议: 项目进展 今天是项目的Alpha敏捷冲刺的第四天,先大概整理下昨天已完成的任务以及今天计划完成的任务.今天 ...

  6. 201521123103 《Java学习笔记》 第七周学习总结

    一.本周学习总结 1.以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 二.书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 源代码如下: pub ...

  7. 201521123002 《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...

  8. 201521123092,《java程序设计》第1周学习总结

    1.本周学习总结 这一周是我学习java的第一周,刚接触一门全新的编程语言,觉得还是有点困难的,很多基础性的java知识需要一点点学习,我会请教同学以及查询网上的学习资料,认真学好这一门学科. 本周学 ...

  9. java课程设计---彩票销售管理系统

    彩票购买销售系统 1.项目git地址 https://git.oschina.net/fenm/lotterry.git 部分项目地址提交截图 项目主要功能图 团队博客链接 http://www.cn ...

  10. [js高手之路]Node.js模板引擎教程-jade速学与实战3-mixin

    强大的mixin mixin类似于函数的功能,可以达到模块复用的效果 mixin show: 定义一个类似函数的功能,名字叫show,里面的就是他的内容 +show: 调用show,每调用一次执行一次 ...