OpenCV中的绘图函数-OpenCV步步精深
OpenCV 中的绘图函数
画线
首先要为画的线创造出环境,就要生成一个空的黑底图像
- img=np.zeros((512,512,3), np.uint8)
- 这是黑色的底,我们的画布,我把窗口名叫做img
np.zeros()有两个参数,一个是创建的图片矩阵大小,另一个是数据类型
512,512是像素(第一个512像素高,第二个是512像素宽),3指BGR三种颜色
uint8是用0-255表示所有颜色。
- cv2.line(img,(0,0),(511,511),(255,0,0),5)
这个函数有5个参数,img是图像名称,起点坐标,终点坐标,(255,0,0)是蓝色,5是线的宽度
会画一条 从左上方到右下角的蓝色线段。
画线两要素:起点与终点。
- 画一条
从左上方到右下角的蓝色线段。
画矩形
- cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
这个函数有5个参数,图像名称,左上顶点坐标,右下顶点坐标,(0,255,0)是绿色,线宽为3
右上角画一个绿色的矩形
画矩形两要素:左上顶点和右下顶点坐标。
- 右上角画一个绿色矩形
画圆
- cv2.circle(img,(447,63), 63, (0,0,255), -1)
这个函数有5个参数,图像名称,圆心坐标,半径63,(0,0,255)红色,线宽为-1,当线宽-1时表示封闭图形的颜色填充。
在画的矩形中画一个圆,半径为128的一般63
画圆两要素:指定圆形的中心点坐标和半径大小
- 画圆
- 在矩形中画圆
画椭圆
- cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)
这个函数有8个参数:图像名称,中心点坐标,长轴长度,短轴长度,旋转角度,图像出现的部分(长轴顺时针方向起始的角度和结束角度)0,180是下半个椭圆,颜色数组这里255是蓝色,线宽
椭圆要素:1.是中心点的位置坐标 2.长轴和短轴的长度 3.椭圆沿逆时针方向旋转的角度 4.长轴顺时针方向起始的角度和结束角度
- 画半个椭圆
画多边形
- 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)
这个函数有5个参数:图像名称,顶点列表(这个多边形在array中有四个顶点),True表示闭合,(0,255,255)是黄色,3是线宽
- 黄色多边形
在图片上添加文字
- font=cv2.FONT_HERSHEY_SIMPLEX
- 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步步精深的更多相关文章
- 5、opencv中的绘图函数
1.目标 a.学习使用 OpenCV 绘制不同几何图形 b. 你将会学习到这些函数: cv2.line(), cv2.circle(), cv2.rectangle(),cv2.ellipse(),c ...
- OpenCV中的绘图函数
OpenCV可以用来绘制不同的集合图形,包括直线,矩形,圆,椭圆,多边形以及在图片上添加文字.用到的绘图函数包括 cv2.line(),cv2.circle(),cv2.rectangle() ,cv ...
- OpenCV:OpenCV中的 parallel_for 和opencv parallel_for_
OpenCV使用OMP完成并行运算,在使用AdaBoost检测的时候,在cascadedetect.cpp 里面,大量使用 parallel_for_(Range(0, stripCount), Ca ...
- OpenCV中的新函数connectedComponentsWithStats使用
主要内容:对比新旧函数,用于过滤原始图像中轮廓分析后较小的区域,留下较大区域. 关键字 :connectedComponentsWithStats 在以前,常用的方法是"是先调用 cv ...
- 【计算机视觉】OpenCV中直方图处理函数简述
计算直方图calcHist 直方图是对数据集合的统计 ,并将统计结果分布于一系列提前定义的bins中.这里的数据不只指的是灰度值 ,统计数据可能是不论什么能有效描写叙述图像的特征. 如果有一个矩阵包括 ...
- Opencv中的阈值函数
OpenCV基础——threshold函数的使用 图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出明显的黑白效果. 参数原型 参数说明 src:源图像,可以为8位的灰度 ...
- opencv中的exp32f函数
exp32f opencv的exp函数和cmath的exp函数在精度上存在一定差异,通过查找源码,发现了这么一段实现.代码如下: 点击查看代码 #define EXPTAB_SCALE 6 #defi ...
- opencv中的缩放函数
图像处理里面缩放操作是比较常见的: 最近邻插值:类似简单映射的处理方式,目标图像w1,h1,原始图像w0,h0,则在目标图像上的点(x,y)的像素点实际对应原始图上(x*w0/w1,y*h0/h1)的 ...
- OpenCV中的常用函数
1.cvLoadImage:将图像文件加载至内存: 2.cvNamedWindow:在屏幕上创建一个窗口: 3.cvShowImage:在一个已创建好的窗口中显示图像: 4.cvWaitKey:使程序 ...
随机推荐
- VIN码识别对汽车行业的应用
汽车VIN码识别: 识别系统到底是什么呢?来~大家往下看,这是易泊时代科技有限公司通过多年的ocr识别技术,与汽车Vin码识别/车架号识别系统相结合,针对机动车配置参数等信息的查询及采集而推出的一款V ...
- hashMap和treeMap
前言 首先介绍一下什么是Map.在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value.这就是我们平时说的键值对. ...
- 201521123084 《Java程序设计》第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...
- 201521123025<java程序设计>第五周学习总结
1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...
- 201521123111《Java程序设计》第12周学习总结
本次作业参考文件 正则表达式参考资料 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String ...
- JavaScript的5中基本数据类型
javascript的5种基本数据类型有: Undefined,Null,Bollean,Number,String,1种复杂数据类型:Object. 1Boolean类型 将一个值转换为Bollea ...
- JavaScript 基本语法结构
1 变量 JavaScript的变量是弱类型的,就是所有的对象都是使用var 来进行声明 2 变量的命名规则 1.由字母.数字.下划线组成,区分大小写 2.以字母开头 3.变量名不能有空格 4.不能使 ...
- [python学习笔记] 运算符
数学运算符 与大多语言相同的运算符就不介绍了.不同的地方会用 (!不同)标出 与java相同的运算符 , - , * , % , / 不同之处 除法 (!不同) / 与java不同,整数相除,结果为 ...
- 初识Hibernate之环境搭建
相信所有做后端的程序员同行们,没有不知道Hibernate大名的.这是一个经典的轻量级Java EE持久层的解决方案,它使得我们程序员能以面向对象的思维操作传统的关系型数据库,这也是其存在的 ...
- 记录各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
记录遇到的IE BUG: 1.IE8开发者工具打不开 解决办法:IE8新增了开发人员工具,非常不错,比早期的DevToolbar好用多了.不过在我的Win7下 使用的时候偶尔会出现一个莫名其妙的问 ...