2013-05-17 10 views
22

का उपयोग कर विंडोज़ में एक छवि पर टेक्स्ट कैसे लिखें, मैं एक छवि पर कुछ टेक्स्ट रखना चाहता हूं। मैं के रूप में कोड लिख रहा हूँ:पाइथन opencv2

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

यह कह रही है, त्रुटि देता है 'मॉड्यूल' ऑब्जेक्ट कोई गुण नहीं है 'CV_FONT_HERSHEY_SIMPLEX'

क्वेरी मैं के रूप में ऊपर टाइप फ़ॉन्ट का उपयोग नहीं कर सकते? मैंने इंटरनेट पर खोज की, लेकिन initFont के लिए ओपनसीवी सी ++ से संबंधित सिंटैक्स पाया। फिर मैंने पैरामीटर के रूप में फ़ॉन्ट प्रकार को पारित करने के लिए putText का उपयोग करने का विचार किया। लेकिन यह मेरे लिए काम नहीं कर रहा है।

कोई सुझाव?

उत्तर

19

सीवी (1) में CV_FONT_HERSHEY_SIMPLEX था? यहाँ सब मैं CV2 "फ़ॉन्ट" के लिए उपलब्ध है:

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 

'CV_' गिराने मेरे लिए काम करने लगता है।

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

यह कोड किसी छवि पर ओवरले टेक्स्ट के लिए cv2.putText का उपयोग करता है। आपको NumPy और OpenCV स्थापित करने की आवश्यकता है।

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

यह वास्तव में एक परेशानी की समस्या है। अजगर के लिए 2.x.x आप का उपयोग करें:

cv2.CV_FONT_HERSHEY_SIMPLEX 

और अजगर 3.x.x के लिए:

cv2.FONT_HERSHEY_SIMPLEX 

मैं एक स्वत: पूर्ण वातावरण (pyscripter या उदाहरण के लिए scipy) का उपयोग करना चाहिये। यदि आप उदाहरण कोड देखते हैं, तो सुनिश्चित करें कि वे पाइथन के समान संस्करण का उपयोग करते हैं (यदि वे सुनिश्चित नहीं करते हैं कि आप कोड बदलते हैं)।

0

यहाँ पैरामीटर के साथ कोड

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) 

लेबल फ़ॉन्ट नाम के लिए कृपया इस सूत्र में एक और उत्तर देखते हैं।

जवाब से

अंश @Roeffus

से यह वास्तव में एक कष्टप्रद समस्या का एक सा है। अजगर के लिए आप का उपयोग 2.x.x:

cv2.CV_FONT_HERSHEY_SIMPLEX और अजगर 3.x.x के लिए:

cv2.FONT_HERSHEY_SIMPLEX

और अधिक देखने के लिए यह http://www.programcreek.com/python/example/83399/cv2.putText