Opencv-在图像上绘制形状(染色、直线、矩形、圆、文字)
Opencv-在图像上绘制形状(染色、直线、矩形、圆、文字)
在对图像进行处理的过程中,需要在图像上绘制形状,比如在信用卡识别时,需要把数字用矩形框起来,因此需要学一下在图像上绘制形状,主要依据cv2库的四个操作:染色(直接对系统保存的数据进行修改)、cv2.line()、cv2.circle()、cv2.rectangle()、cv2.putText(),这次都是对原图像进行直接操作的,不需要赋值给新参数
1.用numpy建立一个数组
img = np.zeros((512, 512, 3), np.uint8)
2.染色(主要是对数组进行修改颜色三通道的数值)
-
对整个图像进行操作
img[:] = 255, 0, 0 -
对部分图像进行操作
img[200:300, 200:300] = 255, 0, 0
3.画线
cv2.line(img, (0, 0), (200, 200), (0, 255, 0), 3)
# 参数介绍:line(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
4.画圆
cv2.circle(img, (200, 200), 30, (255,0,0),2)
# 参数介绍:circle(img, center, radius, color, thickness=None, lineType=None, shift=None)
5.画矩形
cv2.rectangle(img, (165,165), (235,235), (0, 0, 255),3)
# 参数介绍:rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
6.添加文字
cv2.putText(img, 'opencv', (150,255), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255), 1)
# 参数介绍:putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
# 参数: (1)org:写字的起点坐标,(2)fontFace:字体,(3)fontSacle:缩放比例
7.全代码
# -*- coding =utf-8 -*-
# @Time :2021/11/13 0:24
# @Author :T.Liang
# @File :character.py
# @Software :PyCharm
import cv2
import numpy as np
img = np.zeros((512, 512, 3), np.uint8)
print(img)
# 对整个图像进行染色,后面是BGR通道的值
# img[:] = 255, 0, 0
# 对部分图像进行染色,后面是BGR通道的值,前面参数范围的取值是对什么参数操作:[y, x]或者[height, width]
# img[200:300, 200:300] = 255, 0, 0
# 在图像中画线
cv2.line(img, (0, 0), (200, 200), (0, 255, 0), 3)
# cv2.line(img, (0, 0), (img.shape[1], img.shape[0]), (0, 255, 0), 3) # 对角线
# 在图像上画圆
cv2.circle(img, (200, 200), 30, (255,0,0),2)
# 在图像上画矩形
cv2.rectangle(img, (165,165), (235,235), (0, 0, 255),3)
# 在图像上写文字
cv2.putText(img, 'opencv', (150,255), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255), 1)
# 参数: (1)org:写字的起点坐标,(2)fontFace:字体,(3)fontSacle:缩放比例
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
结果:

浙公网安备 33010602011771号