OpenCV实现简单的绘图函数有哪些,怎么用
Admin 2022-10-08 群英技术资讯 315 次浏览
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()
演示结果:
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()
渐变图:
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()
结果演示:
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()
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()
结果显示:
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()
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了pytorch MSELoss计算平均的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
这篇文章主要介绍了python多进程及通信实现异步任务需求,本人也是很少接触多进程的场景,对于python多进程的使用也是比较陌生的。在接触了一些多进程的业务场景下,对python多进程的使用进行了学习,觉得很有必要进行一个梳理总结,感兴趣的朋友一起看看吧
这篇文章主要介绍了Python三数之和的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
“回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时
这篇文章主要给大家分享了4个的Python自动化脚本,自动化脚本无需手动一次又一次地完成这些任务,非常方便,下面我能就一起进入文章来来了解实现吧,希望对你有所帮助
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008