本文已收录于Opencv系列专栏: 深入浅出OpenCV ,专栏旨在详解Python版本的Opencv,为计算机视觉的开发与研究打下坚实基础。免费订阅,持续更新。
文章目录
*
– opencv中的绘图函数
–
+ 1.线段绘制
+ 2.矩形绘制
+ 3.圆,椭圆绘制
+
* 圆绘制
* 椭圆绘制
+ 4.多边形绘制
+ 5.添加文字
+ 6.综合图像绘制
; opencv中的绘图函数
1.线段绘制
cv2.line( img, pts, color thickness,linetype)
参数说明
img :待绘制图像
color :形状的颜色,元组如 (255,0,0)
pts :起点和终点坐标
thickness:线条的粗细。 1 为填充,默认值是 1
linetype:线条的类型 8 型或 cv2.LINE_AA, 默认值为 8 型
例程
import numpy as np
import cv2
img=np.zeros((512,512,3), np.uint8)
cv2.imshow("black", img)
cv2.waitKey(0)
cv2.destroyWindow("black")
cv2.line(img,(0,0),(200,500),(0,0,255),5)
winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)
2.矩形绘制
cv2.rectangle(img, pts, color, thickness, linetype)
参数说明:
img :待绘制图像
pts:左上角和右下角坐标点
color:形状的颜色,元组如 255,0,0
thickness:线条的粗细。 -1 为填充,默认值是 1
linetype:线条的类型,使用默认值即可
import numpy as np
import cv2
img=np.zeros((512,512,3), np.uint8)
cv2.rectangle(img,(384,0),(510,128),(0,255,255),1)
winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)
3.圆,椭圆绘制
圆绘制
cv2.circle(img, pts, radius, color, thickness, linetype)
参数说明:
img :待绘制图像。
pts:圆心。
radius:半径。
color:颜色。
thickness:线条的粗细。 -1 为填充,默认值是 1 。
linetype:线条的类型,使用默认值即可。
import numpy as np
import cv2
img=np.zeros((512,512,3), np.uint8)
cv2.circle(img,(447,63), 63, (0,0,255), -1)
winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)
椭圆绘制
cv2.ellipse()
参数说明:
参数2 :椭圆中心(x,y)
参数3:x/y 轴的长度
参数4:angle 椭圆的旋转角度
参数5:startAngle 椭圆的起始角度
参数6:endAngle 椭圆的结束角度
import numpy as np
import cv2
img=np.zeros((512,512,3), np.uint8)
cv2.ellipse(img, (256, 256), (100, 50), 0, 30, 180, (255, 0, 0), -1)
winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)
4.多边形绘制
cv2.polylines(img, pts, isClosed, color, thickness, lineType)
参数说明:
参数1:img 图像,表示你要在哪张图像上画线
参数2:pts ,表示的是点对,形式如下
参数3:isClosed ,布尔型 True 表示的是线段闭合, False 表示的是仅保留线段。
参数4:color ,线段颜色,格式是 R,G,B )值
参数5:thickness, 数值型,线宽度,默认值为1 1 则会填充整个图形;
参数6:lineType ,线型;
import numpy as np
import cv2
img=np.zeros((512,512,3), np.uint8)
pts = np.array([[10, 5], [50, 10], [70, 20], [20, 30]])
print(pts)
pts = pts.reshape((-1, 1, 2))
print(pts)
cv2.polylines(img, [pts], False, (0, 255, 255))
winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)
5.添加文字
cv2.putText()
参数2 :要添加的文本
参数3 :文字的起始坐标(左下角为起点)
参数4 :字体
参数5 :文字大小(缩放比例)
参数6 :颜色
参数7 :线条宽度
参数8 :线条形状
import numpy as np
import cv2
img=np.zeros((512,512,3), np.uint8)
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(50,200), font, 3,(0,255,255),5)
winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)
6.综合图像绘制
import numpy as np
import cv2
img=np.zeros((512,512,3), np.uint8)
cv2.line(img,(0,0),(511,511),(255,0,0),1)
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
cv2.circle(img,(447,63), 63, (0,0,255), -1)
cv2.ellipse(img, (256, 256), (100, 50), 0, 0, 180, (255, 0, 0), -1)
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,0,255),1)
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2)
winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)
Original: https://blog.csdn.net/m0_52316372/article/details/127529256
Author: timerring
Title: OpenCV 图像处理:常用绘图函数
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/633886/
转载文章受原作者版权保护。转载请注明原作者出处!