网络编程
位置:首页>> 网络编程>> Python编程>> Python OpenCV简单的绘图函数使用教程

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

作者:代码骑士  发布时间:2023-08-02 23:22:22 

标签:Python,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()

演示结果:

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

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()

结果演示:

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

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

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()

渐变图: 

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

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()

结果演示:

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

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()

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

换个角度:(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()

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

在顺时针旋转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()

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

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()

结果显示:

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

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简单的绘图函数使用教程

来源:https://blog.csdn.net/qq_51701007/article/details/122381220

0
投稿

猜你喜欢

  • pandas中的agg函数python中的agg函数通常用于调用groupby()函数之后,对数据做一些聚合操作,包括sum,min,max
  • 在网站建设中,分类算法的应用非常的普遍。在设计一个电子商店时,要涉及到商品分类;在设计发布系统时,要涉及到栏目或者频道分类;在设计软件下载这
  • 本文实例讲述了php中$_GET与$_POST过滤sql注入的方法,分享给大家供大家参考。具体分析如下:此函数只能过滤一些敏感的sql命令了
  • 译者newstart写的简介:Ross Dawson所在的Future Exploration Network于2007年5月发布的web2
  • 随着网络技术的不断发展,网络应用已经渗透到人类社会的各个角落。作为网络世界的支撑点的网站,更是人们关注的热点:政府利用网站宣传自己的施政纲领
  • jqGrid是一个优秀的基于jQuery的DataGrid框架,想必大伙儿也不陌生,网上基于ASP的资料很少,我提供一个,数据格式是json
  • 2009年 6月6日,空间4岁啦!与此同时Qzone月登录用户2亿,同时在线用户也突破了1000万。这是让人欢欣雀跃的数字,在空间同事眼里,
  • MySQL使用环境变量TMPDIR的值作为保存临时文件的目录的路径名。如果未设置TMPDIR,MySQL将使用系统的默认值,通常为/tmp、
  • 什么是PHPPHP代表了"超文本处理器",这意味着你必须知道,它是一种服务器端的处理语言,且以HTML的形式出现。它最常
  • 这个间歇性向上滚动js代码很适合做广告展示,友情链接等等。与平常的无缝向上连续滚动不同的是它每滚动一个就会停顿一会儿。<!DOCTYP
  • 保持良好的代码风格是每个Coder必学的课程,同样在HTML设计的时候也要特别注意代码的规范性,虽然说不规范的代码不会直接造成严重的后果,但
  • 下面是我写的NumericStepper:谢谢 果果 和 Rimifon , 我对代码进行了完善, 支持自适应小数位数:
  • 有几个原因促使我们使用自定义的select控件来代替原生的select控件:在ie6下select是一个窗口级的元素,绝对定位的层会被sel
  • 以前做音乐项目的时候,最让我们头痛的就是满足用户的问题。在音乐的领域,不要试图去满足所有用户这个定律得到了最充分的验证。究其原因,无非是音乐
  • 最近做了一次口碑网注册流程改造,简单说一下激活邮件的设计上的一些小心得:1、尽量不要用图片,尤其是别把激活链接做成一个点击按钮。2、尽量少的
  • 当你提交一个查询的时候,MySQL会分析它,看是否可以做一些优化使处理该查询的速度更快。这一部分将介绍查询优化器是如何工作的。如果你想知道M
  • 输入汉字提示拼音,试试下面这个函数,不知是不是你要的那个:查询汉字便宜到词典网<%function getpychar(ch
  • 这章是结合之前学习的Tensforboard与Transforms的一个练习。直接上代码:from PIL import Imagefrom
  • 例如:JSON字符串:var str1 = '{ "name": "cxh", "
  • 今天有业务需要制作用户头像的需求,在网上找了个可以裁剪大图制作自己希望大小的图片的方法(基于Struts2)。特此记录一下。不废话,具体的步
手机版 网络编程 asp之家 www.aspxhome.com