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

सी ++ का उपयोग कर ओपनसीवी में बाइनरी छवि को कैसे पलटना है?

बाइनरी इमेज को इनवर्ट करने का मतलब है पिक्सल वैल्यू को इनवर्ट करना। एक दृश्य परिप्रेक्ष्य से, जब हम एक बाइनरी छवि को उलटते हैं, तो सफेद पिक्सेल काले रंग में परिवर्तित हो जाएंगे, और काले पिक्सेल सफेद में परिवर्तित हो जाएंगे।

इस फ़ंक्शन का मूल रूप है -

cvtColor(original_image, grayscale_image, COLOR_BGR2GRAY);

अगली पंक्ति ग्रेस्केल छवि को बाइनरी छवि में परिवर्तित कर रही है और रूपांतरित छवि को 'बाइनरी_इमेज' मैट्रिक्स में संग्रहीत कर रही है।

threshold(grayscale_image, binary_image, 100, 255, THRESH_BINARY);

यहाँ 'ग्रेस्केल_इमेज' स्रोत मैट्रिक्स है, 'बाइनरी_इमेज' गंतव्य मैट्रिक्स है। उसके बाद, दो मान 100 और 255 हैं। ये दो मान थ्रेशोल्ड रेंज का प्रतिनिधित्व करते हैं। इस पंक्ति में, थ्रेशोल्ड रेंज परिवर्तित किए जाने वाले ग्रेस्केल पिक्सेल मानों का प्रतिनिधित्व करती है।

bitwise_not(source matrix, destination matrix);

bitwise_not() फ़ंक्शन स्रोत मैट्रिक्स के पिक्सेल मानों को उलट देता है और उन्हें गंतव्य मैट्रिक्स में संग्रहीत करता है। स्रोत मैट्रिक्स 'बाइनरी_इमेज' है, और गंतव्य मैट्रिक्स 'inverted_binary_image' है।

निम्न प्रोग्राम बाइनरी इमेज इनवर्जन करता है -

उदाहरण

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
   Mat original_image;//declaring a matrix to load the original image//
   Mat grayscale_image;//declaring a matrix to store converted image//
   Mat binary_image;//declaring a matrix to store the binary image
   Mat inverted_binary_image;//declaring a matrix to store inverted binary image
   namedWindow("Binary Image");//declaring window to show binary image//
   namedWindow("Inverted Binary Image");//declaring window to show inverted binary image//
    original_image = imread("mountain.jpg");//loading image into matrix//
   cvtColor(original_image, grayscale_image,COLOR_BGR2GRAY);//Converting BGR to Grayscale image and storing it into 'converted' matrix//
   threshold(grayscale_image, binary_image, 100, 255, THRESH_BINARY);//converting grayscale image stored in 'converted' matrix into binary image//
   bitwise_not(binary_image, inverted_binary_image);//inverting the binary image and storing it in inverted_binary_image matrix//
   imshow("Binary Image", binary_image);//showing binary image//
   imshow("Inverted Binary Image", inverted_binary_image);//showing inverted binary image//
   waitKey(0);
   return 0;
}

आउटपुट

सी ++ का उपयोग कर ओपनसीवी में बाइनरी छवि को कैसे पलटना है?


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

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

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

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

  1. सी ++ का उपयोग कर ओपनसीवी में छवि कैसे लोड और दिखाएं?

    इस विषय में, हम यह निर्धारित करेंगे कि C++ में OpenCV का उपयोग करके छवियों को कैसे लोड और दिखाया जाए। OpenCV में एक छवि लोड करने और दिखाने के लिए निम्नलिखित कार्यों की आवश्यकता होती है। चटाई: मैट कोई फंक्शन नहीं है। यह एक डेटा संरचना है, एक प्रकार का चर। सी ++ में इंट, चार, स्ट्रिंग वेरिएबल प्रकार