为什么我引入图片会出现文本,但是如果我“创建”背景则文本不会出现?
带有图片的代码:
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
显示了它。一个解决方案可能是图像变黑,但我更愿意理解为什么会发生这种情况。
答案 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()