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中文教程: 系统环境 ...
随机推荐
- nginx 启停命令
nginx 启停配置 #!/bin/sh # # nginx Startup script for nginx # # chkconfig: - 85 15 # processname: nginx ...
- 《F4+2》β冲刺第二天
β冲刺第二天 1.每个成员今日完成的任务: 马仲山:系统代码和开发总结文档的完善 马婧(12):完善需求文档 马婧(13):完善设计文档 马世芳:对部分功能实现进行测试 张俊逸:针对测试出现的问题完善 ...
- Python 错误与异常
2017-08-01 13:40:17 在程序运行过程中,总会遇到各种各样的错误. 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复 ...
- php 7.2 安装 mcrypt 扩展: mcrypt 扩展从 php 7.1.0 开始废弃;自 php 7.2.0 起,会移到 pecl
升级 php 7.2 后,使用微信提供的加解密代码时,提示 call to undefined function mcrypt_module_open() :大脑疯狂运转1秒钟后,得出结论:php 7 ...
- 微信小程序跳到h5,h5在跳回小程序
1.在微信小程序后台: 设置->开发设置->业务域名: 添加业务逻辑域名 2.在html5页面添加如下代码: <! -- html --> < script type=& ...
- 【异常】Application failed to start due to an exception org.springframework.beans.factory.BeanCurrentlyInCreationException
一. 异常信息: 2018-05-17 18:03:22.224 -DEBUG [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter ...
- Android之省市区三级联动
最近项目要做一个电商APP,选择收货地址的三级联动滚动选择组件, 控件用起来非常简单 ,下面是它的运行效果: 布局 <LinearLayout xmlns:android="http: ...
- Android之 RecyclerView,CardView 详解和相对应的上拉刷新下拉加载
随着 Google 推出了全新的设计语言 Material Design,还迎来了新的 Android 支持库 v7,其中就包含了 Material Design 设计语言中关于 Card 卡片概念的 ...
- P4721 【模板】分治 FFT
其实是分治ntt,因为fft会爆精度,真*裸题 分治过程和fft的一模一样,主要就是ntt精度高,用原根来代替fft中的\(w_n^k\) 1.定义:设m>1,(a,m)==1,满足\(a^r= ...
- linux pipes
In Linux, a pipe is implemented using two filedata structures which both point at the same temporary ...