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

 更新时间:2022年01月10日 10:00:12   作者:代码骑士  
本文主要为大家介绍了OpenCV中一些简单的绘图函数的使用教程,文中的示例代码讲解详细,对我们了解OpenCV有一定的帮助,感兴趣的可以学习一下

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绘图函数的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:

相关文章

  • Pyinstaller打包Scrapy项目的实现步骤

    Pyinstaller打包Scrapy项目的实现步骤

    这篇文章主要介绍了Pyinstaller打包Scrapy项目的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Python使用for实现无限循环的多种方式汇总

    Python使用for实现无限循环的多种方式汇总

    这篇文章主要介绍了Python使用for实现无限循环的多种方式汇总,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • python图形工具turtle绘制国际象棋棋盘

    python图形工具turtle绘制国际象棋棋盘

    这篇文章主要为大家详细介绍了python图形工具turtle绘制国际象棋棋盘,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • python网络爬虫学习笔记(1)

    python网络爬虫学习笔记(1)

    这篇文章主要为大家详细介绍了python网络爬虫学习笔记的第一篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • 使用Python脚本和ADB命令实现卸载App

    使用Python脚本和ADB命令实现卸载App

    这篇文章主要介绍了使用Python脚本和ADB命令实现卸载App的实现方法,文中给出了完整的示例代码,相信对大家具有一定的参考价值,有需要的朋友们下面来一起看看吧。
    2017-02-02
  • 详谈在flask中使用jsonify和json.dumps的区别

    详谈在flask中使用jsonify和json.dumps的区别

    下面小编就为大家分享一篇详谈在flask中使用jsonify和json.dumps的区别,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • pandas创建新Dataframe并添加多行的实例

    pandas创建新Dataframe并添加多行的实例

    下面小编就为大家分享一篇pandas创建新Dataframe并添加多行的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python中利用h5py模块读取h5文件中的主键方法

    python中利用h5py模块读取h5文件中的主键方法

    今天小编就为大家分享一篇python中利用h5py模块读取h5文件中的主键方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python中多个数组行合并及列合并的方法总结

    Python中多个数组行合并及列合并的方法总结

    下面小编就为大家分享一篇Python中多个数组行合并及列合并的方法总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python类的专用方法实例分析

    Python类的专用方法实例分析

    这篇文章主要介绍了Python类的专用方法,实例分析了__init__、__del__、__repr__等专用方法的应用技巧,需要的朋友可以参考下
    2015-01-01

最新评论