2012-02-26 13 views
5

मैं ओपनसीवी के साथ पूरी तरह से नया हूं। मैंने कुछ दिन पहले Learing OpenCV पढ़ना शुरू कर दिया था और अब मैं कुछ परीक्षण करना चाहता हूं।ओपनसीवी - सीवीपीटटेक्स्ट मेरी छवियों में शोर जोड़ रहा है

मैं एक ASCII कला संवाददाता प्रोग्राम करना चाहता था। मैंने छवि क्षेत्र पुनरावृत्ति और वर्गों द्वारा समेकित पिक्सेल को प्रत्येक क्षेत्र की चमक की गणना करने के लिए एक संबंधित चरित्र से जोड़ने के लिए किया है। तो अब मुझे यह जानने की जरूरत है कि प्रत्येक छवि क्षेत्र को किसी चरित्र से जोड़ने के लिए एक चरित्र कितना उज्ज्वल है। मेरा विचार एक और कार्यक्रम बनाना था जो मुझे कुछ पात्रों की चमक देता है। दृष्टिकोण इस प्रकार है:

  • 100 * 100 (उदाहरण के लिए) आकार की एक छवि बनाएँ - काले रंग की पृष्ठभूमि और 1 चैनल
  • सफेद रंग में यह कहीं चरित्र ड्रा (cvPutText)
  • दोहराएं छवि और सफेद पिक्सेल की संख्या गिनती
  • परिणाम

मुझे लगता है कि मेरा कार्यक्रम ठीक है सामान्यीकृत करें, लेकिन मैं बस इसे जाँच करने के लिए, मैं एक साथ छवियों को प्रदर्शित कर रहा हूँ अजीब परिणाम मिल रहे हैं ... चरित्र और somethi एनजी अजीब चल रहा है। छवि दिखाती है कि मैं किस बारे में बात कर रहा हूं।

cvPutText() result

इस कोड मैं का उपयोग कर रहा है:

... 
char c = 'a'; //or whatever 
IplImage *img = cvCreateImage(cvSize(150, 150), IPL_DEPTH_8U, 1); 

char buffer[7]; 
sprintf(buffer, "%c", c); 

CvFont font; 
cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.5, 0.5); 
cvPutText(img, buffer, cvPoint(2, 15), &font, cvScalar(255)); 

//iteration to calculate brightness will go here 

cvNamedWindow(buffer); 
cvShowImage(buffer, img); 
cvMoveWindow(buffer, 50*(c-first), 20); 
... 

मैं MacOS शेर पर विकसित कर रहा हूँ (अगर यह मदद करता है ...)। पढ़ने के लिए धन्यवाद (और मदद!)।

+0

मैं उबंटू 12.04 पर ओपनसीवी 2.4 का उपयोग कर रहा हूं। मैंने आपके कोड स्निपेट की कोशिश की है, लेकिन मुझे चरित्र के साथ छवि को प्रदर्शित करने में समस्या दिखाई नहीं दे रही है। बस आश्चर्य है कि क्या आप cvPutText() के बाद कोई छवि मैनिपुलेशन करते हैं? – zkan

+2

मुझे लगता है कि cvCreateImage छवि को प्रारंभ नहीं करता है, क्या आपने cvSet (img, cvScalar (0,0,0)) की कोशिश की है; ? – Milo

+0

आपकी मदद के लिए धन्यवाद। मैं अब ओपनसीवी का उपयोग नहीं कर रहा हूं लेकिन मुझे इसके साथ प्रयोग जारी रखने के लिए कुछ दिन का समय लगता है। –

उत्तर

1

आपने छवि सामग्री को प्रारंभ नहीं किया है: आपने बस स्मृति आवंटित की है और आप किसी प्रकार की मेमोरी कचरा देखते हैं।

अपनी छवि को काले रंग में सेट करने के लिए बस cvSet (img, cvScalarAll (0)) जोड़ें।

+0

आपकी मदद के लिए भी धन्यवाद। मैं थोड़ी देर में समाधान का परीक्षण नहीं कर पाऊंगा, लेकिन आप जो कहते हैं (और एक महीने पहले मिलो ने भी कहा था) समझ में आता है। तो मैं आपका जवाब स्वीकार करता हूं। –

+0

मैंने अंत में इस परियोजना को फिर से हटा दिया है। मैंने इसका एक बहुत ही सरल पहला संस्करण समाप्त कर लिया है। आपका समाधान बहुत अच्छा था! धन्यवाद (और @ मिलो भी!) यदि आप परिणामों के बारे में उत्सुक हैं, तो मैंने उन्हें अपने github पृष्ठ पर अपलोड कर दिया है: https://github.com/ricardperez/ASCIIArt –

संबंधित मुद्दे