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

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

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

ग्रेस्केल छवि में, प्रत्येक के लिए 256 भिन्न संभावित मान होते हैं। लेकिन बाइनरी इमेज में, केवल दो संभावित मान हैं। बाइनरी छवियों में विभिन्न प्रकार के अनुप्रयोग होते हैं। उदाहरण के लिए, रूपात्मक परिवर्तन के लिए एक द्विआधारी छवि की आवश्यकता होती है, पृष्ठभूमि से वस्तु आकार निष्कर्षण के लिए एक द्विआधारी छवि की आवश्यकता होती है, आदि। OpenCV का उपयोग करके, हम एक छवि को एक बाइनरी छवि में स्वतंत्र रूप से परिवर्तित कर सकते हैं।

निम्न उदाहरण 'ओरिजिनल_इमेज' मैट्रिक्स में लोड की गई छवि को ग्रेस्केल छवि में परिवर्तित कर रहा है और इसे 'ग्रेस्केल_इमेज' मैट्रिक्स में संग्रहीत कर रहा है-

cvtColor(original_image, grayscale_image, COLOR_BGR2GRAY);

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

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

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

निम्न प्रोग्राम एक छवि लोड करता है और इसे एक बाइनरी छवि में परिवर्तित करता है।

उदाहरण

#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 grayscale image//
   Mat binary_image;//declaring a matrix to store the binary image
   namedWindow("Original Image");//declaring window to show binary image//
   namedWindow("Show Binary");//declaring window to show original image//
   original_image = imread("teddy.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//
   imshow("Original Image", original_image);//showing Original Image//
   imshow("Show Binary", binary_image);//showing Binary Image//
   waitKey(0);
   return 0;
}

आउटपुट

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


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

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

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

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

  1. Java OpenCV लाइब्रेरी का उपयोग करके मिरर इमेज कैसे बनाएं?

    दर्पण छवि बनाने के लिए ImageIO.read() विधि का उपयोग करके आवश्यक छवि पढ़ें। छवि की ऊंचाई और चौड़ाई प्राप्त करें। परिणाम संग्रहीत करने के लिए एक खाली बफर्ड छवि बनाएं लूप के लिए नेस्टेड का उपयोग करना छवि में प्रत्येक पिक्सेल से होकर गुजरता है। छवि की चौड़ाई को दाएं से बाएं दोहराएं। ge