在做视觉算法相关工作的时候,经常需要把一些检测的结果绘制在原图像上,以便查看效果。对于python里面使用opencv(cv2库)在图像上绘制点、线、矩形框和文本,以下给出具体的示例。
原图像如下:
python代码如下:
import cv2
img_path = 's.jpg'
# 读图像
img = cv2.imread(img_path)
# 绘制点
point_list = [(360, 80), (230, 270), (470, 270)]
for point in point_list:
cv2.circle(img, point, 3, (255, 0, 0), 3)
# 绘制点之间的连线
line_maps = {0:2, 1:0, 2:1}
for i in line_maps.keys():
start_point = point_list[i]
end_point = point_list[line_maps[i]]
cv2.line(img, start_point, end_point, (0, 255, 0), 2)
# 绘制矩形框
tl_point = (220, 70)
br_point = (480, 280)
cv2.rectangle(img, tl_point, br_point, (0, 0, 255), 2)
# 添加文本
text = 'Great Day!'
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, text, (tl_point[0], tl_point[1]-10), font, 1, (0, 0, 255), 2)
# 保存图像
save_path = 'drawing.jpg'
cv2.imwrite(save_path, img)
结果如下: