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

Java OpenCV लाइब्रेरी का उपयोग करके इमेज के पिक्सेल्स (RGB मान) कैसे प्राप्त करें?


एक डिजिटल इमेज पिक्सेल्स के 2D एरे के रूप में स्टोर होती है और एक पिक्सेल डिजिटल इमेज का सबसे छोटा तत्व है।

प्रत्येक पिक्सेल में अल्फा, लाल, हरा, नीला मान होते हैं और प्रत्येक रंग का मान 0 से 255 के बीच होता है जो 8 बिट्स (2^8) खर्च करता है।

ARGB मान 4 बाइट्स मेमोरी में उसी क्रम में (दाएं से बाएं) स्टोर होते हैं: नीला मान 0-7 बिट्स पर, हरा मान 8-15 बिट्स पर, लाल मान 16-23 बिट्स पर, और अल्फा 24-31 बिट्स पर।

Java OpenCV लाइब्रेरी का उपयोग करके इमेज के पिक्सेल्स (RGB मान) कैसे प्राप्त करें?

इमेज के पिक्सेल सामग्री (ARGB मान) प्राप्त करना

इमेज से पिक्सेल मान प्राप्त करने के लिए -

  • इमेज में प्रत्येक पिक्सेल के माध्यम से लूप करें। यानी इमेज की ऊंचाई और चौड़ाई को पार करते हुए नेस्टेड लूप चलाएं।

  • getRGB() मेथड का उपयोग करके प्रत्येक बिंदु पर पिक्सेल मान प्राप्त करें।

  • पिक्सेल मान को पैरामीटर के रूप में पास करके Color ऑब्जेक्ट इंस्टेंटिएट करें।

  • getRed(), getGreen() और getBlue() मेथड्स का उपयोग करके क्रमशः लाल, हरा, नीला मान प्राप्त करें।

उदाहरण

निम्नलिखित Java उदाहरण इमेज के प्रत्येक पिक्सेल की सामग्री पढ़ता है और RGB मानों को एक फाइल में लिखता है -

import java.io.File;
import java.io.FileWriter;
import java.awt.Color;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

public class GetPixels {
    public static void main(String args[]) throws Exception {
        FileWriter writer = new FileWriter("D:\\Images\\pixel_values.txt");
        
        // इमेज पढ़ना
        File file = new File("D:\\Images\\cat.jpg");
        BufferedImage img = ImageIO.read(file);
        
        for (int y = 0; y < img.getHeight(); y++) {
            for (int x = 0; x < img.getWidth(); x++) {
                // पिक्सेल की सामग्री प्राप्त करना
                int pixel = img.getRGB(x, y);
                
                // पिक्सेल मान से Color ऑब्जेक्ट बनाना
                Color color = new Color(pixel, true);
                
                // R G B मान प्राप्त करना
                int red = color.getRed();
                int green = color.getGreen();
                int blue = color.getBlue();
                
                writer.append(red + ":");
                writer.append(green + ":");
                writer.append(blue + "");
                writer.append("\n");
                writer.flush();
            }
        }
        writer.close();
        System.out.println("प्रत्येक पिक्सेल पर RGB मान निर्दिष्ट फाइल में स्टोर किए गए हैं");
    }
}

आउटपुट

प्रत्येक पिक्सेल पर RGB मान निर्दिष्ट फाइल में स्टोर किए गए हैं

आप शिफ्ट ऑपरेटर्स का उपयोग करके पिक्सेल से RGB मान भी प्राप्त कर सकते हैं -

ऐसा करने के लिए -

  • प्रत्येक रंग की शुरुआती स्थिति पर राइट शिफ्ट करें यानी अल्फा के लिए 24, लाल के लिए 16, आदि।

  • राइट शिफ्ट ऑपरेशन अन्य चैनलों के मानों को प्रभावित कर सकता है, इससे बचने के लिए, आपको 0Xff के साथ बिटवाइज AND ऑपरेशन करना होगा। यह वेरिएबल को मास्क करता है जिससे अंतिम 8 बिट्स रह जाते हैं और बाकी सभी बिट्स को अनदेखा कर दिया जाता है।

int p = img.getRGB(x, y); // पिक्सेल मान से A R G B मान प्राप्त करना
int a = (p >> 24) & 0xff;
int r = (p >> 16) & 0xff;
int g = (p >> 8) & 0xff;
int b = p & 0xff;
  1. Java OpenCV लाइब्रेरी का उपयोग करके नेगेटिव इमेज को पॉजिटिव इमेज में कैसे बदलें? Java OpenCV लाइब्रेरी का उपयोग करके नेगेटिव इमेज को पॉजिटिव इमेज में कैसे बदलें?

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

  1. Java OpenCV लाइब्रेरी का उपयोग करके इमेज के पिक्सेल (RGB मान) कैसे सेट/संशोधित करें? Java OpenCV लाइब्रेरी का उपयोग करके इमेज के पिक्सेल (RGB मान) कैसे सेट/संशोधित करें?

    एक पिक्सेल डिजिटल इमेज का सबसे छोटा तत्व है, प्रत्येक पिक्सेल में अल्फा, लाल, हरे, नीले मान होते हैं। पिक्सेल मान 32-बिट मेमोरी स्पेस में ARGB मानों (प्रत्येक 8 बिट) को उसी क्रम में संग्रहीत करता है। इसलिए, इमेज के रंग को संशोधित करने के लिए −आपको इमेज में प्रत्येक पिक्सेल के माध्यम से लूप करने की आ

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

    OpenCV लाइब्रेरी का उपयोग करके आप इमेज प्रोसेसिंग ऑपरेशन कर सकते हैं जैसे इमेज फ़िल्टरिंग, ज्यामितीय इमेज ट्रांसफॉर्मेशन, कलर स्पेस रूपांतरण, हिस्टोग्राम, आदि।इमेज लिखनाजब भी आप Imgcodecs क्लास की imread() मेथड का उपयोग करके इमेज की सामग्री पढ़ते हैं, तो परिणाम मैट्रिक्स ऑब्जेक्ट में पढ़ा जाता है।आप