使用opencv,我们可以在图像上显示文本。标准方法是
cv2.putText(img, "my_text", (x, y), font, 1.0, (255, 255, 255), 0)
但是我想显示一个小的图标图像,后跟文本(在本例中为“my_text”)。
我可以通过这种方式将图像覆盖在图像上:
icon_img = cv2.imread("icon.png")
icon_img1= cv2.resize(icon_img, (20,20))
x_offset=y_offset=5
img[y_offset:y_offset+icon_img1.shape[0], x_offset:x_offset+icon_img1.shape[1]] = icon_img1
但是我希望图标与显示文本一起移动。
图标可能看起来像这样
谢谢!
最佳答案
这在opencv中实际上是不可能的。
Opencv在其基本GUI中没有z层的概念,因此您将负责设置图像中每个元素的位置。 Opencv的GUI并不是真正开发为成熟应用程序的界面,而是更多用于测试和开发目的。如果您真的想要完整的GUI,我建议使用Qt或wxPython。
但是,对于这个非常基本的问题,您可以做的是
icon_img = cv2.imread("icon.png")
icon_img1= cv2.resize(icon_img, (20,20))
x_offset=y_offset=5
img[y_offset:y_offset+icon_img1.shape[0], x_offset:x_offset+icon_img1.shape[1]] = icon_img1
cv2.putText(img, "my_text", (x_offset+icon_img1.shape[1], y_offset+icon_img1.shape[0]), font, 1.0, (255, 255, 255), 0)
这样可以将要放置在图像后的文本移到图像的右下角
关于opencv - 使用opencv显示图像和文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45038587/