前言

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绘图函数的更多相关文章

  1. 《Python爬虫学习系列教程》学习笔记

    http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己 ...

  2. [转]《Python爬虫学习系列教程》

    <Python爬虫学习系列教程>学习笔记 http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多. ...

  3. opencv-python教程学习系列5-处理鼠标事件

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍opencv-python处理鼠标事件,坚持学习,共同进步. 系列教程参照OpenCV-Pytho ...

  4. opencv-python教程学习系列13-图像平滑

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像平滑,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 系统: ...

  5. opencv-python教程学习系列12-图像阈值

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像阈值/二值化,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 ...

  6. opencv-python教程学习系列11-几何变换

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍几何变换,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 系统: ...

  7. opencv-python教程学习系列10-颜色空间转换

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍颜色空间转换,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 系 ...

  8. opencv-python教程学习系列9-程序性能检测及优化

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍程序性能检测及优化,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环 ...

  9. opencv-python教程学习系列8-opencv图像算术运算

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像的算术运算,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 ...

随机推荐

  1. 使用 apply 函数族

    之前,我们讨论过可以使用 for 循环,在一个向量或列表上进行迭代,重复执行某个表达式.但是在实践中,for 循环往往是最后的选择,因为每次迭代都是相互独立的,所以我们可以使用更简洁更方便的读写方式来 ...

  2. c++ primer plus 第七章 课后题答案

    #include <iostream> using namespace std; double HAR_AVG(double, double); void TEST(bool); int ...

  3. typeof

    1.用法 typeof num typeof(num) 2.返回值    "number"."string"."boolean"." ...

  4. Java知识集锦

    Java知识集锦 一.Java程序基础 1.1 开发和运行环境 1.2 Java语言概述 二.Java语法基础 2.1 基础类型和语法 2.2 对象和类型 2.3 包和访问控制 三.数据类型及类型转换 ...

  5. android--------自定义弹幕控件(视频弹幕操作)

    弹幕功能在很多平台上都有,直播平台,视频播放器,音乐等上面都有, 直播平台发送弹幕和主播互动,那么弹幕效果是怎么实现的呢. 案例主要是实现视频出现弹幕,可以文字和表情弹幕,启动和关闭弹幕,发布弹幕. ...

  6. 浅浅的分析LED呼吸灯的实现和PWM的关系

    前言 在本周,我们在python课上做了一个实验,用ARDUINO使小LED灯模仿出呼吸灯的效果,实验进行的很成功,但是机器当仅输出高/低电平的时候是怎么样才能做到渐亮渐暗(输出电压)的变化呢?在这里 ...

  7. JS-图片控制-动画管理模块

    animateManage.js ;(function(window,document,undefined){ var _aniQueue = [], //动画队列 --- ani:动画,Queue: ...

  8. Sublime text3配置xdebug调试记录

    第一次配置遇到的问题记录: 问题:配置php.ini的时候xdebug.remote_port = 9001刚开始我一直配置9000端口冲突,然后一切弄好了访问浏览器就一直在转圈无法访问: 现在开始配 ...

  9. OC 设计模式

    设计模式 一种或几种被所有程序员广泛认同的,有某些特定功能,或者实现某些特殊作用的编码格式 单例模式 键值编码(KVC) 键值观察(KVO) 观察者模式() 工厂模式(工厂方法) ps:MVC &am ...

  10. IOS8-人机界面指南

    [ISUX转译]iOS 8人机界面指南(一):UI设计基础 糖箔糊2014.09.23 文章索引 1.1 为iOS而设计(Designing for iOS) 1.1.1 以内容为核心(Defer t ...