Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ का उपयोग कर ओपनसीवी में छवियों को विभिन्न चैनलों में कैसे विभाजित करें?

RGB इमेज में तीन चैनल होते हैं- लाल, हरा और नीला। वह रंग स्थान जहाँ लाल, हरे और नीले चैनल छवियों का प्रतिनिधित्व करते हैं, RGB रंग स्थान कहलाते हैं। OpenCV में, RGB के बजाय BGR अनुक्रम का उपयोग किया जाता है। इसका मतलब है कि पहला चैनल नीला है, दूसरा चैनल हरा है और तीसरा चैनल लाल है। आरजीबी छवि को विभिन्न चैनलों में विभाजित करने के लिए, हमें 3 चैनलों के मैट्रिक्स को परिभाषित करने की आवश्यकता है। हम 'मैट अलग_चैनल[3]' . का उपयोग करते हैं तीन-चैनल मैट्रिक्स को परिभाषित करने के लिए।

इसके बाद, हम OpenCV 'स्प्लिट ()' फ़ंक्शन का उपयोग करके लोड की गई छवि को विभाजित करते हैं। इस फ़ंक्शन का प्रारूप 'स्प्लिट (सोर्स मैट्रिक्स, डेस्टिनेशन मैट्रिक्स)' है। यह फ़ंक्शन स्रोत मैट्रिक्स की छवियों को छवि के चैनलों में विभाजित करता है और उन्हें गंतव्य मैट्रिक्स में सहेजता है। यह लाइन काम कर रही है - 'split(myImage, different_Channels);'

स्प्लिट फंक्शन पहले ही नीले, हरे और लाल चैनल को 'भिन्न_चैनल' मैट्रिक्स में लोड कर चुका है। निम्नलिखित पंक्तियों का उपयोग करते हुए, हमने विभिन्न चैनलों में संग्रहीत छवियों को नए मैट्रिक्स में लोड किया।

मैट बी =डिफरेंट_चैनल्स[0];//ब्लू चैनल लोड करना//मैट जी =डिफरेंट_चैनल्स[1];//ग्रीन चैनल लोड करना//मैट आर =डिफरेंट_चैनल्स[2];//रेड चैनल लोड करना// पूर्व> 

और अंत में हमने निम्नलिखित पंक्तियों का उपयोग करते हुए प्रत्येक चैनल को अलग-अलग दिखाया -

इमशो ("ब्लू चैनल", बी); // ब्लू चैनल दिखा रहा है // इमशो ("ग्रीन चैनल", जी); // ग्रीन चैनल दिखा रहा है // इमशो ("रेड चैनल", आर); // दिखा रहा है लाल चैनल//

इस प्रकार हम छवियों को उसके चैनलों में विभाजित कर सकते हैं।

निम्न प्रोग्राम RGB छवि को नीले, हरे और लाल चैनल में विभाजित करता है।

उदाहरण

#शामिल करें#शामिल करें {Mat myImage;//छवि को लोड करने के लिए एक मैट्रिक्स घोषित करना//मैट अलग_चैनल[3];//तीन चैनलों के साथ एक मैट्रिक्स घोषित करना//myImage=imread("RGB.png");// myImage मैट्रिक्स में छवि लोड करना // स्प्लिट (मायइमेज, डिफरेंट_चैनल); // छवियों को 3 अलग-अलग चैनलों में विभाजित करना // मैट बी =अलग_चैनल [0]; // ब्लू चैनल लोड करना // मैट जी =अलग_चैनल [1]; // ग्रीन चैनल लोड करना // मैट r =अलग_चैनल [2]; // लाल चैनल लोड करना // imshow ("ब्लू चैनल", b); // ब्लू चैनल दिखा रहा है // imshow ("ग्रीन चैनल", g); // ग्रीन चैनल दिखा रहा है // imshow ( "रेड चैनल", आर); // रेड चैनल दिखा रहा है // imshow ("Actual_Image", myImage); // वास्तविक छवि दिखा रहा है // प्रतीक्षाकी (0); // कुंजी स्ट्रोक के लिए प्रतीक्षा करें नष्ट कर दें सभीविंडोज (); // सभी को बंद करना विंडोज़//वापसी 0;}

आउटपुट

सी ++ का उपयोग कर ओपनसीवी में छवियों को विभिन्न चैनलों में कैसे विभाजित करें?


  1. सी ++ का उपयोग कर ओपनसीवी में बाइनरी छवि कैसे बनाएं?

    एक द्विआधारी छवि सिर्फ एक डिजिटल छवि है जो दो रंगों, काले और सफेद का प्रतिनिधित्व करती है। इमेज प्रोसेसिंग के नजरिए से, बाइनरी इमेज में दो संभावित मानों वाले पिक्सल होते हैं- शून्य और एक। जब पिक्सेल का मान 0 होता है, तो यह एक शुद्ध काले रंग का प्रतिनिधित्व करता है। जब पिक्सेल का मान 1 होता है, तो इस

  1. सी ++ का उपयोग कर ओपनसीवी में छवियों को विभिन्न चैनलों में कैसे विभाजित करें?

    RGB इमेज में तीन चैनल होते हैं- लाल, हरा और नीला। वह रंग स्थान जहाँ लाल, हरे और नीले चैनल छवियों का प्रतिनिधित्व करते हैं, RGB रंग स्थान कहलाते हैं। OpenCV में, RGB के बजाय BGR अनुक्रम का उपयोग किया जाता है। इसका मतलब है कि पहला चैनल नीला है, दूसरा चैनल हरा है और तीसरा चैनल लाल है। आरजीबी छवि को विभ

  1. सी ++ का उपयोग कर ओपनसीवी में किसी छवि के चैनलों की संख्या की गणना कैसे करें?

    इस विषय में, हम समझेंगे कि किसी छवि के चैनलों की संख्या का पता कैसे लगाया जाए। प्रोग्राम चलाने के बाद, कंसोल विंडो में चैनल का नंबर दिखाया जाएगा। चैनल की संख्या प्राप्त करने के लिए, हमने ओपनसीवी के एक वर्ग का उपयोग किया है जिसका नाम चैनल () है। जब हम इमेज मैट्रिक्स को चैनल () वर्ग के ऑब्जेक्ट के रू