如何使用OpenCV在图像上渲染带白色描边黑色填充的自定义文字
实现方法
你可以通过两次调用cv2.putText实现需求,原理是先绘制粗的白色文字作为描边,再在相同位置绘制细的黑色文字作为填充,两次绘制仅修改文字覆盖区域的像素,不会影响原图其他区域的内容与透明度。
示例代码
# 第一步:绘制白色描边,厚度为内部文字的3倍(可根据需求调整倍数控制描边宽度) cv2.putText(img, "My text", (x, y), font, font_size, (255, 255, 255), font_thickness * 3, lineType = cv2.LINE_AA) # 第二步:相同坐标绘制黑色内部文字 cv2.putText(img, "My text", (x, y), font, font_size, (0, 0, 0), font_thickness, lineType = cv2.LINE_AA)
注意事项
- 两次调用的文字内容、坐标、字体、字号参数必须完全一致,避免出现错位
- 如果你需要更粗/更细的描边,调整第一次绘制时的厚度参数即可
- 该方法兼容三通道BGR普通图像与四通道BGRA带透明通道的图像,文字外的区域会保持原有的内容与透明度
内容的提问来源于stack exchange,提问作者Kyu96
相关产品推荐
相关产品推荐

