自学内容网 自学内容网

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

目录

一、绘制函数参数说明

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()

运行结果:

 


原文地址:https://blog.csdn.net/qq_74375828/article/details/137452268

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!