opencv-python教程学习系列4-opencv绘图函数
前言
opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍opencv绘图函数,坚持学习,共同进步。
系列教程参照OpenCV-Python中文教程;
系统环境
系统:win_x64;
python版本:python3.5.2;
opencv版本:opencv3.3.1;
内容安排
1.知识点介绍;
2.测试代码;
具体内容
1.知识点介绍;
主要介绍一下opencv的绘图函数,设计的函数有cv2.line() , cv2.cicle() , cv2.rectangle() , cv2.ellipse() , cv2.putText()等。
需要设置的参数有img-要绘制图形的图像;color-形状的颜色,以RGB为例,需要传入的元组(255,0,0)代表蓝色,对于灰度图只需传入灰度值;
thickness-线条的粗细,如果给一个闭合图形设置为-1,那么这个图形就会被填充,默认值为1;
linetype-线条的类型,8连接,抗锯齿等。默认是8连接。cv2.LINE_AA为抗锯齿;
1.1 画线:需要输入函数的参数是线段的起点和终点;
cv2.line(img,(0,0),(260,260),(255,0,0),5)#起点/终点/颜色/粗细
1.2 画矩形:需要输入函数的参数是矩形左上角和右下角顶点的横、纵坐标;
cv2.rectangle(img,(350,0),(500,128),(0,255,0),3)#矩形左上角点的横纵坐标/右下角点/颜色/粗细
1.3 画圆:需要指定圆心坐标和半径大小;
cv2.circle(img,(425,63),63,(0,0,255),-1)#圆,-1为向内填充/圆心/半径
1.4 画椭圆:
cv2.ellipse(img,(256,256),(100,50),0,0,360,255,-1)
#中心点/长轴/短轴/与短轴的顺时针旋转的始末角度/蓝色的饱和度/填充
1.5 画多边形:需要指定每个顶点的坐标,构建一个大小相等于行数的数组,行数就是点的数目,这个数组必须为int32。
pts=np.array([[10,5],[20,30],[50,10],[70,20]],np.int32)
pts = pts.reshape((-1,1,2))
#这里reshape的第一个参数为-1,表明这一维度的长度是根据后面的维度计算出来的
cv2.polylines(img,[pts],True,(0,255,255)) #按照点的顺序连接线段
#注意第三个参数若是False,我们得到的是不闭合的线
1.6 在图像上添加文字:
需要设置文字内容,绘制的位置,字体类型、大小、颜色、粗细、线类型等,这里推荐linetype=cv2.LINE_AA;
font = cv2.FONT_HERSHEY_SIMPLEX
#位置是左上角的起始点横纵坐标
cv2.putText(img,'OpenCV',(20,300), font, 4,(255,255,255),2,cv2.LINE_AA)
1.7 显示结果;
winname='example'
cv2.namedWindow(winname)
cv2.imshow(winname,img)
cv2.waitKey(0)
cv2.destroyAllWindow(winname)
2.测试代码;
import numpy as np
import cv2 #Create a black image
img = np.zeros((512,512,3),np.uint8) cv2.rectangle(img,(350,0),(500,128),(0,255,0),3)#矩形
cv2.circle(img,(425,63),63,(0,0,255),-1)#圆,-1为向内填充/圆心/半径 cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.resizeWindow('image',1000,1000)#定义frame的大小
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
注意,示例代码给出了如何画圆,其他绘图操作类似。
参考
1.opencv绘图函数;
完
opencv-python教程学习系列4-opencv绘图函数的更多相关文章
- 《Python爬虫学习系列教程》学习笔记
http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己 ...
- [转]《Python爬虫学习系列教程》
<Python爬虫学习系列教程>学习笔记 http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多. ...
- opencv-python教程学习系列5-处理鼠标事件
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍opencv-python处理鼠标事件,坚持学习,共同进步. 系列教程参照OpenCV-Pytho ...
- opencv-python教程学习系列13-图像平滑
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像平滑,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 系统: ...
- opencv-python教程学习系列12-图像阈值
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像阈值/二值化,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 ...
- opencv-python教程学习系列11-几何变换
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍几何变换,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 系统: ...
- opencv-python教程学习系列10-颜色空间转换
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍颜色空间转换,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 系 ...
- opencv-python教程学习系列9-程序性能检测及优化
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍程序性能检测及优化,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环 ...
- opencv-python教程学习系列8-opencv图像算术运算
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像的算术运算,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 ...
随机推荐
- Jmeter性能测试 对服务器使用资源进行监控之ServerAgent插件使用
百度云盘友情赞助地址如下: 链接:https://pan.baidu.com/s/1cpAeOcfFX8kss1eo79UD9g 密码:b8o7 在windows上或者linux上打开服务 用Jmet ...
- SetParent
1.http://bbs.csdn.net/topics/390672855 该帖子中 第15楼: “ MSDN里面说了:if hWndNewParent is not NULL and the wi ...
- CentOS下的Autoconf和AutoMake(完善篇) 3
在<实践篇>之后,由于需求不断修正,所以这篇是针对<实践篇>的一些完善.(以后内容会不定期增加完善) 1.不想链接到math的动态库,想连接到静态库①使用命令ldd ./mys ...
- 机器学习 Matplotlib库入门
2017-07-21 15:22:05 Matplotlib库是一个优秀的python的数据可视化的第三方类库,其中的pyplot支持了类似matlab的图像输出操作.matplotlib.pyplo ...
- 谈谈Java反射机制
原文出处: locality 写在前面:什么是java反射机制?我们又为什么要学它?当程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言.我们认为java并不是动态语言,但是它却有一个非常突 ...
- python模块——socket (实现简单的C/S架构端通信操作CMD)
# 服务端代码#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = "loki" import socket impo ...
- Confluence 6 连接到一个 LDAP 目录
https://www.cwiki.us/display/CONFLUENCEWIKI/Connecting+to+an+LDAP+Directory
- vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
今天分享的不是技术,今天给大家分享个插件,针对现有的vue右键菜单插件,大多数都是需要使用插件本身自定义的标签,很多地方不方便,可扩展性也很低,所以我决定写了一款自定义指令调用右键菜单(vuerigh ...
- view_countInfo
create view view_countInfo as SELECT a.dwmch, b.dwbh, b.djbh, c.rq, c.shl, c.djbh AS Expr1, d.sp ...
- 【转】json与jsonp区别浅析(json才是目的,jsonp只是手段)
一言以蔽之,json返回的是一串数据:而jsonp返回的是脚本代码(包含一个函数调用): JSON其实就是JavaScript中的一个对象,跟var obj={}在质上完全一样,只是在量上可以无限扩展 ...