在黑色背景中显示一些文本

时间:2019-07-26 17:23:35

标签: python opencv

为什么我引入图片会出现文本,但是如果我“创建”背景则文本不会出现?

带有图片的代码:

img = cv2.imread('img.png')
font, line, color = cv2.FONT_HERSHEY_PLAIN, cv2.LINE_AA, (0,255,0)
cv2.putText(img, 'FILTERS', (100,100), font, 1, color, 1, line)
cv2.imshow('Filters',img)

带有背景的代码(不起作用):

background = np.full((300,600), 0, dtype=np.uint8)
font, line, color = cv2.FONT_HERSHEY_PLAIN, cv2.LINE_AA, (0,255,0)
cv2.putText(background, 'FILTERS', (100,100), font, 1, color, 1, line)
cv2.imshow('Filters',background)

我想是因为第二张不是图像,但我不理解,因为imshow显示了它。一个解决方案可能是图像变黑,但我更愿意理解为什么会发生这种情况。

1 个答案:

答案 0 :(得分:3)

因为您将彩色文本放置在灰度(形状为300X600)的背景中。要解决此问题,请将背景形状更改为300X300X3:

import cv2
import numpy as np

background = np.full((300,600,3), 0, dtype=np.uint8)
font, line, color = cv2.FONT_HERSHEY_PLAIN, cv2.LINE_AA, (0,255,0)
cv2.putText(background, 'FILTERS', (100,100), font, 1, color, 1, line)
cv2.imshow('Filters',background)
cv2.waitKey(0)
cv2.destroyAllWindows()