2013-05-17 12 views
22

Voglio mettere del testo su un'immagine. sto scrivendo il codice come:Come scrivere il testo su un'immagine in Windows usando python opencv2

cv2.putText(image,"Hello World!!!", (x,y), cv2.CV_FONT_HERSHEY_SIMPLEX, 2, 255) 

Dà ERRORE, dicendo 'modulo' oggetto non ha attributo 'CV_FONT_HERSHEY_SIMPLEX'

Query non riesco ad utilizzare il tipo di carattere tipo di cui sopra? Ho cercato su internet, ma ho trovato solo la sintassi relativa a Opencv C++ per initFont. Poi ho pensato di usare putText per passare il tipo di carattere come parametro. Ma non sta funzionando per me.

Qualche suggerimento?

risposta

19

CV_FONT_HERSHEY_SIMPLEX nel cv (1)? Qui è tutto quello che ho a disposizione per cv2 "FONT":

FONT_HERSHEY_COMPLEX 
FONT_HERSHEY_COMPLEX_SMALL 
FONT_HERSHEY_DUPLEX 
FONT_HERSHEY_PLAIN 
FONT_HERSHEY_SCRIPT_COMPLEX 
FONT_HERSHEY_SCRIPT_SIMPLEX 
FONT_HERSHEY_SIMPLEX 
FONT_HERSHEY_TRIPLEX 
FONT_ITALIC 

La caduta del 'CV_' sembra funzionare per me.

cv2.putText(image,"Hello World!!!", (x,y), cv2.FONT_HERSHEY_SIMPLEX, 2, 255) 
20

Questo codice utilizza cv2.putText per sovrascrivere il testo su un'immagine. Hai bisogno di NumPy e OpenCV installati.

import numpy as np 
import cv2 

# Create a black image 
img = np.zeros((512,512,3), np.uint8) 

# Write some Text 

font     = cv2.FONT_HERSHEY_SIMPLEX 
bottomLeftCornerOfText = (10,500) 
fontScale    = 1 
fontColor    = (255,255,255) 
lineType    = 2 

cv2.putText(img,'Hello World!', 
    bottomLeftCornerOfText, 
    font, 
    fontScale, 
    fontColor, 
    lineType) 

#Display the image 
cv2.imshow("img",img) 

#Save image 
cv2.imwrite("out.jpg", img) 

cv2.waitKey(0) 
5

Questo è davvero un po 'un problema fastidioso. per Python 2.x.x si utilizza:

cv2.CV_FONT_HERSHEY_SIMPLEX 

e per Python 3.x.x:

cv2.FONT_HERSHEY_SIMPLEX 

mi consiglia di utilizzare un ambiente di completamento automatico (pyscripter o SciPy per esempio). Se cerchi codice di esempio, assicurati che utilizzino la stessa versione di Python (se non si assicurano di cambiare il codice).

0

Ecco il codice con il parametro etichette

def draw_text(self, frame, text, x, y, color=BGR_COMMON['green'], thickness=1.3, size=0.3,): 
    if x is not None and y is not None: 
     cv2.putText(
      frame, text, (int(x), int(y)), cv2.FONT_HERSHEY_SIMPLEX, size, color, thickness) 

Per nome del font vedere un'altra risposta in questo thread.

Estratto dalla risposta da @Roeffus

Questo è davvero un po 'di un fastidioso problema. Per python 2.x.x si utilizza:

cv2.CV_FONT_HERSHEY_SIMPLEX e per Python 3.x.x:

cv2.FONT_HERSHEY_SIMPLEX

Per più vedere questo http://www.programcreek.com/python/example/83399/cv2.putText

Problemi correlati