Como fazer fundo preto em cv2.putText com Python OpenCV

S Andrew:

Eu tenho um projeto de opencvonde no quadro I estou mostrando algum texto usando cv2.putText(). Atualmente parece que a seguir:

digite descrição da imagem aqui

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:

digite descrição da imagem aqui

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?

nathancy:

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,hparâmetros dependendo de como grande / pequeno que você deseja que o retângulo. Aqui está um exemplo:

imagem de entrada:

digite descrição da imagem aqui

Resultado:

digite descrição da imagem aqui

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()

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=298510&siteId=1
Recomendado
Clasificación