2010-03-07 20 views
6

में रंगीन कैप्चर में पता लगाए गए किनारों को कैसे विलय करें मैं सी # डेस्कटॉप एप्लिकेशन (इमू सीवी रैपर के साथ) बनाने की कोशिश कर रहा हूं जो कैमरे से फ़ीड को कैप्चर करता है, फ़ीड में किनारों का पता लगाता है और फिर मूल फ़ीड प्रदर्शित करता है (रंगीन) किनारों के साथ - तो कुछ संयुक्त रंगीन फ़ीड और किनारों के कुछ हद तक। मैं सफलतापूर्वक कैमरे से फ़ीड प्राप्त करता हूं। मैं कैनी विधि का उपयोग करके फ़ीड में किनारों का भी पता लगाता हूं। समस्या यह है कि मूल फ़ीड रंग में है, किनारों का पता ग्रेस्केल (काला पृष्ठभूमि, सफेद किनारों) में किया जाता है। मैं जानना चाहता हूं कि मर्ज किए गए फ़ीड को आउटपुट करने के लिए एज फीड के साथ रंग फ़ीड को "मर्ज" कैसे करें।इमू सीवी

मैंने इमू सीवी में कॉपी विधि के साथ प्रयास किया है, लेकिन यह एक काले रंग की पृष्ठभूमि और सही ढंग से रंगीन किनारों का उत्पादन करता है (उदाहरण के लिए यदि मेरे पास कैमरे के सामने एक लाल घन है, तो घन के चारों ओर किनारों को लाल रंग दिया जाता है) ।

किसी भी मदद की बहुत सराहना की जाती है।

उत्तर

6

ठीक है, मुझे थोड़ा सा टिंकरिंग के बाद समाधान मिला। यह चाल एक उल्टा कैनी परिणाम और रंगीन फ़ीड पर और फ़ंक्शन का उपयोग करना है। यहां मेरा फ़ंक्शन है जो एप्लिकेशन के साथ काम करता है। आईडी:

private void processFunction(object sender, EventArgs e) { 
     Image<Bgr, Byte> frame = c0.QueryFrame(); 
     Image<Gray, Byte> grayscale = frame.Convert<Gray, Byte>(); 
     grayscale = grayscale.Canny(new Gray(0), new Gray(255)).Not(); //invert with Not() 
     frame = frame.And(grayscale.Convert<Bgr, Byte>(), grayscale); //And function in action 
     imageBox1.Image = frame; 

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