机器视觉学习(十二)—— 绘制图形

时间:2024-04-10 12:38:49

目录

一、绘制函数参数说明

1.1 cv2.line()绘制直线

1.2 cv2.rectangle()绘制矩形

1.3 cv2.circle() 绘制圆形

1.4 cv2.ellipse()绘制椭圆

1.5 cv2.polylines()绘制多边形

1.6 cv2.putText() 绘制文字

二、绘制函数使用示例

2.1 在图像上绘制直线

2.2 在图像上绘制矩形

2.3 在图像上绘制圆形

2.4 在图像上绘制椭圆

三、绘制图形函数结合使用


在OpenCV中,我们可以使用几个函数来绘制不同类型的图形,例如直线、矩形、圆形和多边形。下面是几个常用的绘制函数:

一、绘制函数参数说明

1.1 cv2.line()绘制直线

线:              
    cv2.line(img, ps, pe, color, thickness)
        img:            要绘制形状的图片
        ps:             起点位置坐标
        pe:             终点位置坐标        
        color:          绘制的颜色
        thickness:      线宽,默认为 1;对于矩形或者圆之类的封闭形状而言,传入 -1表示填充形状

 

1.2 cv2.rectangle()绘制矩形

矩形:
    cv2.rectangle(img, ps, pe, color, thickness)
        img:            要绘制形状的图片
        ps:             起点位置坐标
        pe:             终点位置坐标        
        color:          绘制的颜色
        thickness:      线宽,默认为 1;对于矩形或者圆之类的封闭形状而言,传入 -1表示填充形状

1.3 cv2.circle() 绘制圆形

圆:              
    cv2.circle(img, center, radius, color, thickness)
        img:            要绘制形状的图片
        center:         圆心坐标
        radius:         圆的半径值
        color:          绘制的颜色
        thickness:      线宽,默认为 1;对于矩形或者圆之类的封闭形状而言,传入 -1表示填充形状

1.4 cv2.ellipse()绘制椭圆

椭圆:
    cv2.ellipse(image, center, axes, angle, startAngle, endAngle, color, thickness, lineType, shift)
        image:          要绘制椭圆的图像
        center:         椭圆的中心坐标
        axes:           椭圆的半长轴和半短轴长度
        angle:          椭圆的旋转角度
        startAngle:     椭圆弧的起始角度
        endAngle:       椭圆弧的结束角度
        color:          椭圆的颜色,可以是RGB值或者一个单一的灰度值
        thickness:      椭圆的边界粗细,默认为1
        lineType:       椭圆的边界类型,默认为8连接线
        shift:          坐标的小数位数,默认为0

1.5 cv2.polylines()绘制多边形

多边形:
    cv2.polylines(img, pts, isClosed, color, thickness)
        img:           要绘制图形的图像
        pts:           多边形的顶点坐标列表
        isClosed:      指定是否闭合多边形(为True时闭合,为False时不闭合)
        color:         多边形的颜色(BGR格式)
        thickness:     多边形的边界线的粗细程度

1.6 cv2.putText() 绘制文字

添加文字:         
    cv2.putText(img, "text", org, fontface, fontscale, color, thickness)

        img:            要绘制形状的图片
        text:           文字内容
        org:            文字在图像中的左下角坐标
        fontFace:       字体类型,可选叁数有几种
        fontScale:      缩放比例,用该值乘以程序字体默认大小即为字体大小
        color:          绘制的颜色  (可以是一个颜色阈值)
        thickness:      线宽,默认为 1;对于矩形或者圆之类的封闭形状而言,传入 -1表示填充形状

二、绘制函数使用示例

2.1 在图像上绘制直线

import cv2
import numpy as np

image = np.zeros((500, 500, 3), np.uint8)  # 创建一个黑色的图像

image = cv2.line(image, (0, 0), (500, 500), (0, 255, 0), 3)  # 绘制一条绿色的直线

cv2.imshow("Line", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

2.2 在图像上绘制矩形

import cv2
import numpy as np

image = np.zeros((500, 500, 3), np.uint8)  # 创建一个黑色的图像

image = cv2.rectangle(image, (100, 100), (400, 400), (0, 0, 255), 2)  # 绘制一个红色的矩形

cv2.imshow("Rectangle", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

2.3 在图像上绘制圆形

import cv2
import numpy as np

image = np.zeros((500, 500, 3), np.uint8)  # 创建一个黑色的图像

image = cv2.circle(image, (250, 250), 100, (255, 0, 0), -1)  # 绘制一个蓝色的填充圆

cv2.imshow("Circle", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

2.4 在图像上绘制椭圆

import cv2
import numpy as np

image = np.zeros((500, 500, 3), np.uint8)  # 创建一个黑色的图像

image = cv2.ellipse(image, (250, 250), (100, 200), 0, 0, 360, (255, 255, 0), -1)  # 绘制一个黄色的填充椭圆

cv2.imshow("Ellipse", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

三、绘制图形函数结合使用

示例:

import cv2 as cv
import numpy as np

img = np.zeros((480,480,3),np.uint8)                            # 初始化图像: np.zeros(length, width, 颜色通道数, np.uint8)        
img = cv.line(img,(0,0),(480,480),(0,0,255),5)                  # 画线: cv.line(img, 起点位置坐标, 终点位置坐标, color, 线宽)
img = cv.rectangle(img,(100,100),(300,300),(0,255,0),5)
img = cv.circle(img,(200,200),90,(255,0,0),5)                   # 画圆: cv.rectangle(img, ps, pe, color,传入 -1表示填充形状)
img = cv.putText(img,"xin",(100,90),cv.FONT_HERSHEY_SIMPLEX,1,(255,255,0),2)            # 添加文字      颜色通过BGR表达

cv.imshow("img",img)
xin = cv.waitKey(0)
if xin == 27:
    cv.destroyAllWindows()

运行结果: