我有以下代码行可以将文本放在图像上,但在大多数情况下都无法辨认。如何使文本变白但文本周围有黑色边框?
cv2.putText(img=image_in, text=traffic_light_state, org=(center[0] + 50, center[1]),
fontFace=cv2.FONT_HERSHEY_COMPLEX , fontScale=1, color=[255, 255, 255], lineType=cv2.CV_AA, thickness=2)
最佳答案
我在代码中的做法是绘制相同的文本两次。一次是双倍粗细的轮廓颜色(根据您的喜好调整),然后一次是文本颜色。
cv2.putText(img=image_in, text=traffic_light_state, org=(center[0] + 50, center[1]),
fontFace=cv2.FONT_HERSHEY_COMPLEX , fontScale=1, color=[0, 0, 0], lineType=cv2.LINE_AA, thickness=4)
cv2.putText(img=image_in, text=traffic_light_state, org=(center[0] + 50, center[1]),
fontFace=cv2.FONT_HERSHEY_COMPLEX , fontScale=1, color=[255, 255, 255], lineType=cv2.LINE_AA, thickness=2)
根据我的经验,按照评论中的建议,扩张并不是最快的。如果在我经常编辑的大图像中使用 addWeighted 可能会很昂贵。在这两种情况下肯定有固定速度的技巧,但这种方法更容易。
size = cv2.getTextSize("Test", cv2.FONT_HERSHEY_COMPLEX, 2, 4)[0]
im = np.ones((size[1], size[0]), np.uint8)*127
cv2.putText(im, "Test", (0,size[1]), cv2.FONT_HERSHEY_COMPLEX, 2, (0,), 4)
cv2.putText(im, "Test", (0,size[1]), cv2.FONT_HERSHEY_COMPLEX, 2, (255,), 2)
cv2.imwrite("test.png", im)
关于python - 如何使用 OpenCV2 在带有黑色边框的图像上显示白色文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48516211/