Python OpenCV简单的绘图函数使用教程

目录
  • 1、画直线的函数是cv2.line
  • 2、画矩形的函数是cv2.rectangle
  • 3、画圆函数是cv2.circle
  • 4、画椭圆的函数是cv2.elipes
  • 5、画多边形的函数是cv2.polylines
  • 6、添加文字的函数是cv2.putText

1、画直线的函数是cv2.line

cv2.line函数语法:

cv2.line(img,start_point,end_point,color,thickness=0)

cv2.line函数参数解释:

img:需要画的图像

start_point:直线的开头,必须是一个元组类型

end_point:直线的结尾,必须是一个元组类型

color:直线的颜色,必须是一个元组类型

thickness:直线的宽度

代码示例:

cv2.line(img,(0,0),(100,100),(0,255,0),3)

实际操作:

import cv2
import numpy as np
#读取一张画布
img=cv2.imread('1.jpg')
#在上面画线
cv2.line(img,(0,0),(100,100),(0,255,0),3)
#将画完的图像存到“.img”文件以后再显示出来
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

演示结果:

2、画矩形的函数是cv2.rectangle

cv2.rectangle函数语法:

cv2.rectangle(img,point1,point2,color,thickness=0)

cv2.rectangle函数的参数解释:

img:需要画的图像

point1:矩形左上角点的坐标,必须是一个元组类型

point2:矩形右下角点的坐标,必须是一个元组类型

color:线的颜色,必须是一个元组类型

thickness:线的宽度

说明:这个函数每调用一次,就会产生一个矩形,多次调用就会产生多个矩形。

示例代码:

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

实际操作:

import cv2
import numpy as np
#读取一张画布
img=cv2.imread('1.jpg')
#在上面画线
cv2.rectangle(img,(0,0),(128,128),(0,255,0),3)
#将画完的图像存到“.img”文件以后再显示出来
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果演示:

上面的两个实例中,颜色都是我们固定好的,那么我们想要一个随机颜色的图形,该怎么做呢?

import cv2
import numpy as np
img = np.zeros((512,512,3),np.uint8)#创建一个黑色的画布,大小为512*512像素,通道数为3
flag=1#跳出外层循环
while flag:
    for a in range(0,256):
        cv2.rectangle(img,(350,0), (500,128),(a,255-a,a),3)
        cv2.namedWindow('image',cv2.WINDOW_NORMAL)
        cv2.resizeWindow('image',(1000,1000))#调整屏幕大小
        cv2.imshow('image',img)
        if cv2.waitKey(1)==ord('q'):
            flag-=1#跳出while循环
            break#跳出for循环
cv2.destroyAllWindows()

渐变图:

3、画圆函数是cv2.circle

cv2.circle的语法:

cv2.circle(img,center,R,color,thickness=0)

cv2.circle函数的参数解释

img:要画的图像

center:圆心坐标,必须是一个元组类型

R:圆的半径

color:颜色,必须是一个元组类型

thickness:线宽

示例代码:

cv2.circle(img,(100,100),100,(0,255,2),-1)
#画圆的时候,-1表示向内填充颜色

实际操作:

import cv2
import numpy as np
img = cv2.imread('1.jpg')
img=cv2.circle(img,(100,100),100,(0,255,0),-1)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果演示:

4、画椭圆的函数是cv2.elipes

cv2.elipes函数的语法:

cv2.ellipes(img,center,(a,b),direction,angle_start,angle_end,color,thickness)

cv2.elipes函数的参数解释:

img:要画的图像

center:椭圆的中心位置

(a,b):长轴和短轴

direction:顺时针方向的旋转角度

angle_start:画椭圆开始的角度

angle_end:画椭圆结束的角度

color;线的颜色

thickness:线的宽度

示例代码:

cv2.ellipese(img,(256,256),(100,50),0,0,360,(0,255,0),-1)

实际操作:

import cv2
import numpy as np
img = cv2.imread('1.jpg')
img=cv2.ellipse(img,(100,100),(100,80),0,0,360,(0,255,0),-1)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

换个角度:(0,270)

import cv2
import numpy as np
img = cv2.imread('1.jpg')
img=cv2.ellipse(img,(100,100),(100,80),0,0,270,(0,255,0),-1)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

在顺时针旋转30:

(direction = 30)

import cv2
import numpy as np
img = cv2.imread('1.jpg')
img=cv2.ellipse(img,(100,100),(100,80),30,0,270,(0,255,0),-1)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

5、画多边形的函数是cv2.polylines

cv2.polylines语法:

cv2.polylines(img,pts,isClosed,color,thickness=0)

cv2.polylines函数参数解释:

img:要画的图像

pts:点的集合,以列表的形式填入

isClosed:多边形是否闭合,如果为False则不闭合,如果为True则闭合。

color:线的颜色

thickness:线的宽度

代码示例:

import cv2
import numpy as np
img =np.zeros((256,256,3),np.uint8)
pts=np.array([[10,3],[48,19],[60,3],[98,19]],np.int32)#注意格式必须是int32
pts=pts.reshape((-1,1,2))
#reshape的第一个参数为-1,表明这一维度的长度是根据后面的维度计算出来的
cv2.polylines(img,[pts],True,(0,255,255),2)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果显示:

6、添加文字的函数是cv2.putText

cv2.putText函数语法:

cv2.putText(img,text,org,fontFace,fontScale,color,thickness,lineType)

cv2.putText函数参数解释

img:要添加文字的背景图

text:添加的文字

org:添加文字的位置

fontFace:字体

fontScale:字号大小

color:字的颜色

thickness:线条的宽度

lineType:线条的种类

示例代码:

cv2.putText(img,'Python+OpenCV',(10,40),font,1,(255,255,255),2,cv2.LINE_AA)

实际操作:

import cv2
import numpy as np
img =np.zeros((256,256,3),np.uint8)
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,"OpneCV",(10,40),font,1,(255,255,255),2,cv2.LINE_AA)
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.resizeWindow('image',750,750)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

以上就是Python OpenCV简单的绘图函数使用教程的详细内容,更多关于Python OpenCV绘图函数的资料请关注我们其它相关文章!

(0)

相关推荐

  • OpenCv实现绘图功能

    本文实例为大家分享了OpenCv实现绘图功能的具体代码,供大家参考,具体内容如下 绘制一个图像在上面画线: import numpy as np import matplotlib.pyplot as plt import cv2 #画图 def show(image): plt.imshow(image) plt.axis('off') plt.show() image = np.zeros((300,300,3),dtype='uint8') #画线 green = (0,255,0) cv

  • python matplotlib各种画图

    目录 1.引入matpltlib库 2.pyplot基础图标函数总结 3.plot函数画图语法规则 4.折线图 4.散点图 5.直方图 6.条形图 纵向 横向 多条 7.饼图 1.引入matpltlib库 matplotlib是一种优秀的python数据可视化第三方库 使用matpltlib库画图时,先将它引入,加载里面的pyplot,并命名为plt,然后使用plot函数画图 import matplotlib.pyplot as plt #plt是引入模块的别名 2.pyplot基础图标函数总

  • 一文教你利用Python画花样图

    目录 前言 地球仪加线 地图上加线 最后的福利-3D图鉴赏 总结 前言 在之前的一篇文章Python可视化神器-Plotly动画展示展现了可视化神器-Plotly的动画的基本应用,本文介绍如何在Python中使用 Plotly 创建地图并在地图上标相应的线. 地球仪加线 根据地球仪的区域显示在相应的位置图形上加上线条,完美的线性地球仪详细代码如下: `import plotly.express as px df = px.data.gapminder.query("year == 2007&qu

  • Python画图时如何调用本地字体

    matplotlib中的字体文件被封装在font_manager这个子模块中,fontManager.ttflist这个列表涵盖了所有Matplotlib支持的字体. >>> import matplotlib.pyplot as plt >>> from matplotlib.font_manager import fontManager >>> print(fontManager.ttflist[0]) #此为字体文件 <Font 'cmmi

  • Python画图常用命令大全(详解)

    matplotlib官网 matplotlib库默认英文字体 添加黑体('SimHei')为绘图字体 代码: plt.rcParams['font.sans-serif']=['SimHei'] 1. 简单例程柱状图 基本方法:matplotlib.pyplot.bar() 基本参数:bar(x,y) 其他参数:颜色color        宽度width        透明度alpha 其他方法:图例legend()        横轴定义xlable()        纵轴定义ylable(

  • python 基于opencv 实现一个鼠标绘图小程序

    需求 在画布上用鼠标画图,可以画圆或矩形,按m键在两种模式下切换.左键按下时开始画图,移动到哪儿画到哪儿,左键释放时结束画图. 实现思想 用鼠标画图:需要定义鼠标的回调函数mouse_event 画圆或矩形:需要定义一个画图的模式mode 左键单击.移动.释放:需要捕获三个不同的事件 开始画图,结束画图:需要定义一个画图的标记位drawing 实现代码 import cv2 as cv import numpy as np drawing = False # 是否开始画图 mode = True

  • Python OpenCV简单的绘图函数使用教程

    目录 1.画直线的函数是cv2.line 2.画矩形的函数是cv2.rectangle 3.画圆函数是cv2.circle 4.画椭圆的函数是cv2.elipes 5.画多边形的函数是cv2.polylines 6.添加文字的函数是cv2.putText 1.画直线的函数是cv2.line cv2.line函数语法: cv2.line(img,start_point,end_point,color,thickness=0) cv2.line函数参数解释: img:需要画的图像 start_poi

  • python+opencv边缘提取与各函数参数解析

    前情提要:作为刚入门机器视觉的小伙伴,第一节课学到机器视觉语法时觉得很难理解, 很多人家的经验,我发现都千篇一律,功能函数没解析,参数不讲解,就一个代码,所以在此将搜集的解析和案例拿出来汇总!!! 一.opencv+python环境搭建 其实能写python的就能写opencv,但是工具很总要,代码提示也很重要,你可能会用submit     vs等工具,submit编码个人觉得不够智能,vs的话过完年我学的方向不一致,所以没用 推荐 pycharm ,在项目setting中的项目解释器中安装

  • python密码学简单替代密码解密及测试教程

    目录 简单替代密码 示例 输出 简单替换密码测试 输出 简单替换密码解密 代码 简单替代密码 简单替换密码是最常用的密码,包括为每个密文文本字符替换每个纯文本字符的算法.在这个过程中,与凯撒密码算法相比,字母表是混乱的. 示例 简单替换密码的密钥通常由26个字母组成.一个示例键是 : plain alphabet : abcdefghijklmnopqrstuvwxyz cipher alphabet: phqgiumeaylnofdxjkrcvstzwb 使用上述密钥的示例加密是 : plai

  • 利用python实现简单的情感分析实例教程

    目录 1 数据导入及预处理 1.1 数据导入 1.2 数据描述 1.3 数据预处理 2 情感分析 2.1 情感分 2.2 情感分直方图 2.3 词云图 2.4 关键词提取 3 积极评论与消极评论 3.1 积极评论与消极评论占比 3.2 消极评论分析 总结 python实现简单的情感分析 1 数据导入及预处理 1.1 数据导入 # 数据导入 import pandas as pd data = pd.read_csv('../data/京东评论数据.csv') data.head() 1.2 数据

  • python opencv 简单阈值算法的实现

    本文先了解一个简单阈值函数,以了解一个阈值算法的具体参数. 然后比较不同阈值函数的区别. 同样的,先用一副图说明本文重要大纲: #! usr/bin/env python # coding: utf-8 import cv2 img = cv2.imread('cat.jpg') img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # 先将图像矩阵进行二值化 # img = cv2.imread('cat.jpg',0) # 也可以直接将图像用灰度值读入,其中0

  • 用Python制作简单的钢琴程序的教程

    录一段音频,把它的音高改变50次并把每一个新的音频匹配到键盘的一个键位,你就能把电脑变成一架钢琴! 一段音频可以被编码为一组数值的数组(或者列表),像这样: 我们可以在数组中每隔一秒拿掉一秒的值来将这段音频的速度变成两倍. 如此我们不仅将音频的长度减半了,而且我们还将它的频率翻倍了,这样使得它拥有比原来更高的音高(pitch). 相反地,假如我们将数组中每个值重复一次,我们将得到一段更慢,周期更长,即音高更低的音频: 这里提供一个可以按任意系数改变音频速度的任意简单的Python函数: impo

  • python实现简单文件读写函数

    python作为脚本性语言,加上它的简便易用性.会经常当作脚本用来处理一下数据和格式.其中处理文件就是频繁用处之一.简单编写几个常用的xls和txt读写函数,以后可以快速复用. 用到xlrd库函数需要预先install 命令:pip install xlrd 直接贴源码: #! /usr/bin/python # coding:utf-8 import json import xlrd import sys reload(sys) sys.setdefaultencoding('utf-8')

  • Python OpenCV中的resize()函数的使用

    改变图像大小意味着改变尺寸,无论是单独的高或宽,还是两者.也可以按比例调整图像大小. 这里将介绍resize()函数的语法及实例. 语法 函数原型 cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) 参数: 参数 描述 src [必需]原图像 dsize [必需]输出图像所需大小 fx [可选]沿水平轴的比例因子 fy [可选]沿垂直轴的比例因子 interpolation [可选]插值方式 [可选]插值方式 其中插值方式有很多种

  • 关于 Python opencv 使用中的 ValueError: too many values to unpack

    最近在OpenCV-Python接口中使用cv2.findContours()函数来查找检测物体的轮廓. 根据网上的 教程,Python OpenCV的轮廓提取函数会返回两个值,第一个为轮廓的点集,第二个是各层轮廓的索引.但是实际调用时我的程序报错了,错误内容如下:too many values to unpack (expected 2) 其实是接受返回值不符,如果你仅仅使用一个变量a去接受返回值,调用len(a),你会发现长度为3,也就是说这个函数实际上返回了三个值 第一个,也是最坑爹的一个

  • 用Python编写一个简单的Lisp解释器的教程

    本文有两个目的: 一是讲述实现计算机语言解释器的通用方法,另外一点,着重展示如何使用Python来实现Lisp方言Scheme的一个子集.我将我的解释器称之为Lispy (lis.py).几年前,我介绍过如何使用Java编写一个Scheme解释器,同时我还使用Common Lisp语言编写过一个版本.这一次,我的目的是尽可能简单明了地演示一下Alan Kay所说的"软件的麦克斯韦方程组" (Maxwell's Equations of Software). Lispy支持的Scheme

随机推荐