摘要:代码画圆圆心位置半径应用在上面绘制的矩形内绘制一个圆。字体类型检查文档以获取支持的字体字体比例指定字体大小常规的东西,如颜色,粗细,线型等。应用我们将在图像上写白色的几个字母代码
Drawing Functions in OpenCV
学习目标函数cv2.line(), cv2.circle() , cv2.rectangle(), cv2.ellipse(), cv2.putText() etc
参数介绍img:需要绘制形状的图像
color:颜色的形式. 对于BGR,将作为元组传递比如(255,0,0)表示蓝色.对于灰度图,只需要传递标量值.
thickness:线或圆形等图像的厚度.如果对闭合图像像圆形传递“-1”,它将填充形状. 默认厚度 = 1.
lineType:线的类型.默认情况下,它是8连接的.cv2.LINE_AA 是适合曲线的抗锯齿线.
1画线cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
pt1:直线起点
pt2:直线终点
应用我们将创建一个黑色图像,并在其上从左上角到右下角绘制一条蓝线。
代码 :
import numpy as np import cv2 # Create a black image img = np.zeros((512,512,3), np.uint8) # Draw a diagonal blue line with thickness of 5 px cv2.line(img,(0,0),(511,511),(255,0,0),5) cv2.imshow("line",img) cv2.waitKey()2绘制矩形
cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
pt1:矩形左上角坐标
pt2:矩形右下角坐标
应用在图像的右上角绘制一个绿色矩形。
代码 :
import numpy as np import cv2 # Create a black image img = np.zeros((512,512,3), np.uint8) cv2.rectangle(img,(384,0),(510,128),(0,255,0),3) cv2.imshow("line",img) cv2.waitKey()3画圆
cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])
center:圆心位置
radius:半径
应用在上面绘制的矩形内绘制一个圆。
代码 :
import numpy as np import cv2 # Create a black image img = np.zeros((512,512,3), np.uint8) cv2.rectangle(img,(384,0),(510,128),(0,255,0),3) cv2.circle(img,(447,63), 63, (0,0,255), -1) cv2.imshow("line",img) cv2.waitKey()4绘制椭圆
cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]])
center:中心位置
axes:轴长度(长轴长度,短轴长度)
angle:椭圆在逆时针方向上的旋转角度
startAngle:主轴顺时针方向测量的椭圆弧的起点
endAngle:主轴顺时针方向测量的椭圆弧的终点
应用在图像的中心绘制一个半椭圆。
代码 :
import numpy as np import cv2 # Create a black image img = np.zeros((512,512,3), np.uint8) cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1) cv2.imshow("line",img) cv2.waitKey()5绘制多边形
cv2.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])
要绘制多边形,首先需要顶点坐标.将这些点转换为ROWSx1x2形状的数组,其中ROWS是顶点数,它应该是int32类型.
应用绘制一个带有四个黄色顶点的小多边形.
代码 :
import numpy as np import cv2 # Create a black image img = np.zeros((512,512,3), np.uint8) pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32) pts = pts.reshape((-1,1,2)) cv2.polylines(img,[pts],True,(0,255,255)) cv2.imshow("line",img) cv2.waitKey()
Note:
如果第三个参数为False,您将获得连接所有点的折线,而不是闭合形状.
cv2.polylines()可用于绘制多条线.只需创建要绘制的所有行的列表并将其传递给函数, 所有线条都将多带带绘制.绘制一组行比为每行调用cv2.line()要好得多,速度更快.
向图像添加文字:
cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
要将文本放入图像中,您需要指定以下内容。
text:要写入的文本数据
org:您想要放置它的位置坐标(即数据开始的左下角)。
fontFace:字体类型(检查cv2.putText()文档以获取支持的字体)
fontScale:字体比例(指定字体大小)
•常规的东西,如颜色,粗细,线型等。为了更好看,建议使用lineType = cv.LINE_AA。
应用我们将在图像上写白色的opencv几个字母.
代码 :
import numpy as np import cv2 # Create a black image img = np.zeros((512,512,3), np.uint8) font = cv2.FONT_HERSHEY_SIMPLEX cv2.putText(img,"OpenCV",(10,500), font, 4,(255,255,255),2,cv2.LINE_AA) cv2.imshow("show",img) cv2.waitKey()
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/41964.html
摘要:游戏开发实战主要讲解使用来开发和设计各类常见游戏的思路和技巧,在介绍相关特性的同时,还通过游戏开发实例深入剖析了其内在原理,让读者不仅知其然,而且知其所以然。HTML5 Canvas游戏开发实战主要讲解使用HTML5 Canvas来开发和设计各类常见游戏的思路和技巧,在介绍HTML5 Canvas相关特性的同时,还通过游戏开发实例深入剖析了其内在原理,让读者不仅知其然,而且知其所以然。在本书...
阅读 2073·2021-11-23 09:51
阅读 2216·2021-09-29 09:34
阅读 3706·2021-09-22 15:50
阅读 3566·2021-09-22 15:23
阅读 2597·2019-08-30 15:55
阅读 711·2019-08-30 15:53
阅读 3083·2019-08-29 17:09
阅读 2638·2019-08-29 13:57