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

OpenCV में C++ का उपयोग करके बाइनरी इमेज कैसे बनाएं?

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

ग्रेस्केल इमेज में, प्रत्येक के लिए 256 अलग-अलग संभावित मान होते हैं। लेकिन बाइनरी इमेज में केवल दो संभावित मान होते हैं। बाइनरी इमेज के विभिन्न प्रकार के अनुप्रयोग होते हैं। उदाहरण के लिए, मॉर्फोलॉजिकल ट्रांसफॉर्मेशन के लिए बाइनरी इमेज की आवश्यकता होती है, बैकग्राउंड से ऑब्जेक्ट आकार निष्कर्षण के लिए बाइनरी इमेज की आवश्यकता होती है, आदि। OpenCV का उपयोग करके, हम एक इमेज को स्वतंत्र रूप से बाइनरी इमेज में परिवर्तित कर सकते हैं।

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

cvtColor(original_image, grayscale_image, COLOR_BGR2GRAY);

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

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

यहां 'grayscale_image' स्रोत मैट्रिक्स है, 'binary_image' गंतव्य मैट्रिक्स है। उसके बाद, दो मान 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;
    Mat grayscale_image;
    Mat binary_image;
    namedWindow("Original Image");
    namedWindow("Show Binary");
    original_image = imread("teddy.jpg");
    cvtColor(original_image, grayscale_image, COLOR_BGR2GRAY);
    threshold(grayscale_image, binary_image, 100, 255, THRESH_BINARY);
    imshow("Original Image", original_image);
    imshow("Show Binary", binary_image);
    waitKey(0);
    return 0;
}

आउटपुट

OpenCV में C++ का उपयोग करके बाइनरी इमेज कैसे बनाएं?

  1. OpenCV में C++ का उपयोग करके इमेज के चैनलों की संख्या कैसे गिनें? OpenCV में C++ का उपयोग करके इमेज के चैनलों की संख्या कैसे गिनें?

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

  1. OpenCV में C++ का उपयोग करके इमेज कैसे लोड करें और दिखाएं? OpenCV में C++ का उपयोग करके इमेज कैसे लोड करें और दिखाएं?

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

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

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