(一)OpenCV计算机视觉基础————绘图函数

1.绘画基础

OpenCV提供了绘制多种图形的函数。这些绘图函数有一些共用的参数,主要用于设置源图像,颜色,线条属性等。

下面对这些共有参数做简单的介绍:

  • img 在其上面绘制图形的载体图像(绘图的容器载体,也称为画布、画板)
  • color 绘制形状的颜色,通常使用BGR模型表示颜色例如,(0,255,0)表示绿色,对于灰度图像,只能传入灰度值。需要注意,颜色通道的顺序是BGR,而不是RGB
  • thicksness 线条的粗细,默认值是 1 ,如果设置为-1,表示填充图形(即绘制的图形是实心的)
  • lineType 线条的类型
  • shift 数据精度。该参数用来控制数值(例如圆心坐标等)的精度,一般情况下不需要设置。

2.常见绘制函数

cv2.line()用来绘制直线(线段)。该函数的语法格式为:

                        img = cv2.line(img,pt1,pt2,color[,thickness[,lineType]])

参数img,color,thickness,lineType的含义如前面的说明所示

pt1 表示线段的第一个点(起点)

pt2 表示线段的第二个点(终点)

 示例:
import numpy as np
import cv2
n = 300
img = np.zeros((n+1,n+1,3),np.uint8)
img = cv2.line(img,(0,0),(n,n),(255,0,0),3)
img = cv2.line(img,(0,100),(n,100),(0,255,0),1)
img = cv2.line(img,(100,0),(100,n),(0,0,255),6)
winname = 'Demo19.1'
cv2.namedWindow(winname)
cv2.imshow(winname,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
运行结果如下:

cv2.rectangle()用来绘制矩形。该函数的语法格式为:

                        img = cv2.rectangle(img,pt1,pt2,color[,thickness[,lineType]])

参数img,color,thickness,lineType的含义如前面的说明所示

pt1为矩形顶点

pt2为矩形中与pt1对角的顶点

示例:
import numpy as np
import cv2
n = 300
img = np.ones((n,n,3),np.uint8)*255
img = cv2.rectangle(img,(50,50),(n-100,n-50),(0,0,255),-1)
winname = 'Demo19.1'
cv2.imshow(winname,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
 运行结果如下:

cv2.circle()用来绘制圆形。该函数的语法格式为:

                        img = cv2.circle(img,center,radius,color[,thickness[,lineType]])

参数img,color,thickness,lineType的含义如前面的说明所示

center 为圆心

示例绘制一个同心圆:
import numpy as np
import cv2
d = 400
img = np.ones((d,d,3),dtype='uint8')*255
(centerX, centerY) =(round(img.shape[1]/2),round(img.shape[0]/2))
# 将图像的中心作为圆心,实际值为d/2
red = (0,0,255) #设置白色变量
for r in range(5,round(d/2),12):
    cv2.circle(img,(centerX,centerY),r,red,3)
         # circle(载体图像,圆心,半径,颜色)
    cv2.imshow('circle',img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
代码运行结果如下:

 cv2.ellipse()用来绘制椭圆。该函数的语法格式为:

       img=cv2.ellipse(img,center,axes,angle,starAngle,endAngle,color[,lineTpye]])

参数img,color,thickness,lineType的含义如前面的说明所示

center 为椭圆的圆心坐标

axes 为轴的长度

angle 为偏转的角度

starAngle 为圆弧起始角的角度

endAngle 为圆弧终结角的角度

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值