Eu tenho um projeto de opencv
onde no quadro I estou mostrando algum texto usando cv2.putText()
. Atualmente parece que a seguir:
Como você pode ver no canto superior esquerdo, o texto está presente, mas não é claramente visível. É possível fazer fundo preto para que o texto irá aparecer bem. Algo como imagem abaixo:
Mesmo se o fundo preto cobre Até lado direito do quadro, que também está bem. Abaixo está o código que estou usando para colocar o texto na moldura:
cv2.putText(frame, "Data: N/A", (5, 30), cv2.FONT_HERSHEY_COMPLEX_SMALL, 1, (0, 0, 255), 1)
cv2.putText(frame, "Room: C1", (5, 60), cv2.FONT_HERSHEY_COMPLEX_SMALL, 1, (0, 0, 255), 1)
Existe algum método pré-construídos / biblioteca disponível em opencv que pode fazer isso. Alguém por favor pode sugerir um bom caminho?
Não há nenhum método pré-construídos, mas um appraoch simples é usar cv2.rectangle
+ cv2.putText
. Tudo que você precisa fazer é desenhar o retângulo preto na imagem seguido por colocar o texto. Você pode ajustar os x,y,w,h
parâmetros dependendo de como grande / pequeno que você deseja que o retângulo. Aqui está um exemplo:
imagem de entrada:
Resultado:
import cv2
import numpy as np
# Load image, define rectangle bounds
image = cv2.imread('1.jpg')
x,y,w,h = 0,0,175,75
# Draw black background rectangle
cv2.rectangle(image, (x, x), (x + w, y + h), (0,0,0), -1)
# Add text
cv2.putText(image, "THICC flower", (x + int(w/10),y + int(h/2)), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (255,255,255), 2)
# Display
cv2.imshow('image', image)
cv2.waitKey()