我们在进行图像处理的过程中,通常需要进行划线、画矩形框锁定目标等操作来凸显指定目标,OpenCV提供了方便的绘图功能,可以进行直线、矩形、圆、文本文字等内容的绘制,这篇文章将记录OpenCV中图像的绘制相关内容。
绘制直线的函数如下:
cv2.line(image,pt1,pt2,color,thickness)
其中,五个参数的具体内容为:
(1)“image”, 进行绘制的图像
(2)“pt1”, 直线的起始坐标,坐标表示为两个值的元组,即(X坐标值, Y坐标值)
(3)“pt2”, 直线的终点坐标,坐标表示为两个值的元组,即(X坐标值, Y坐标值)
(4)“color”, 设置直线的颜色,对于BGR,可以用一个元组表示。例如:绿色的元组表示为(0, 255, 0)
(5)“thickness”, 设置直线的粗细,可以根据需要自定义
具体应用代码如下:
import cv2
img = cv2.imread('cat.jpg')
cv2.line(img, (100, 100), (200, 100), (0, 255, 0), 5)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
绘制矩形的函数如下:
cv2.rectangle(image,pt1,pt2,color,thickness)
和绘制直线函数类似,只有pt1、pt2、thickness有略微变化,具体如下:
(1)“pt1”, 矩形框的一个顶点坐标,坐标表示为两个值的元组,即(X坐标值, Y坐标值)
(2)“pt2”, pt1的对角线顶点坐标,类型同pt1
(3)“thickness”, 用来表示线的粗细,需要注意的是,当该值为负数或者cv2.FILLED时,将绘制一个填充矩形
具体应用代码如下:
import cv2
img = cv2.imread('cat.jpg')
cv2.rectangle(img, (100, 100), (200, 200), (0, 255, 0), 3)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
绘制圆形的代码如下:
cv2.circle(image,center,radius,color,thickness)
其中,需要特别指出的参数有:
(1)“center”, 绘制圆形的圆心坐标,坐标表示为两个值的元组,即(X坐标值, Y坐标值)
(2)“radius”, 绘制圆形的半径
(3)“thickness”, 用来表示线的粗细,需要注意的是,当该值为负数或者cv2.FILLED时,将绘制一个填圆形
具体应用代码如下:
import cv2
img = cv2.imread('cat.jpg')
cv2.rectangle(img, (100, 100), 50, (0, 255, 0), 3)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
绘制文本的代码如下:
cv2.putText(image,text,pt,font,fontScale,color)
其中,需要特别指出的参数有:
(1)“text”, 是要绘制的内容
(2)“pt”, 为所画文本左上角的坐标
(3)“font”, 文本的字体格式
(4)“fontScale”, 字体的大小
具体应用代码如下:
import cv2
img = cv2.imread('cat.jpg')
cv2.putText(img, "Hi,KAI", (100, 100), cv2.FONT_HERSHEY_SCRIPT_SIMPLEX, 1, (255, 0, 0))
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
其中,cv2.FONT_HERSHEY_SCRIPT_SIMPLEX代表的是一种简单的字体格式