opencv - 使用opencv显示图像和文本

标签 opencv

使用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

但是我希望图标与显示文本一起移动。

图标可能看起来像这样

enter image description here

谢谢!

最佳答案

这在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/

相关文章:

image - 将 3 channel 图像转换为 T 型单向量的最快方法

qt4 - Qt programname.exe 退出,代码为 -1073741819 我该如何解决这个问题?

python - 使用 Raspberry Pi 3 B 型(和 Pi 相机)进行高速高分辨率图像捕获

python - 根据Python,OpenCV中的优先级对轮廓进行排序

c++ - 在 Windows 中为 Linux on Intel 编译 C++ 库

Opencv header 不同版本和库不同版本 : ubuntu

android - 如何知道图像是否太暗以至于需要使用 OpenCv 进行闪光

python - 如何使用opencv和多线程在python中捕获视频(logitech c920)

python - 使用Python通过urllib下载图片并测试网站是否存在

opencv - OpenCv 中两个不同相机的立体校正