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

जावा ओपनसीवी लाइब्रेरी का उपयोग करके किसी छवि के पिक्सल (आरजीबी मान) को कैसे सेट/संशोधित करें?

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

  • आपको छवि के प्रत्येक पिक्सेल में लूप करना होगा।

  • getRGB() विधि का उपयोग करके पिक्सेल मान प्राप्त करें।

  • पिक्सेल मान से ARGB मान प्राप्त करें।

  • RGB मानों में आवश्यक संशोधन करें।

  • संशोधित RGB मानों के साथ एक नया पिक्सेल मान बनाएँ।

  • setRGB() विधि का उपयोग करके नया पिक्सेल मान सेट करें।

ARGB मान सेट करना -

पिक्सेल मान को पैरामीटर के रूप में पास करके रंग ऑब्जेक्ट को तुरंत चालू करें। क्रमशः getRed (), getGreen () और getBlue () विधियों का उपयोग करके लाल, हरा, नीला मान प्राप्त करें। मानों को वापस सेट करने के लिए संशोधनों के बाद -

  • पैरामीटर के रूप में नए RGB मानों को दरकिनार करते हुए एक Color ऑब्जेक्ट बनाएं।

  • कलर क्लास के getRGB() मेथड का इस्तेमाल करके कलर ऑब्जेक्ट से पिक्सल वैल्यू प्राप्त करें।

  • सेटआरजीबी () विधि में नए पिक्सेल मान के साथ-साथ x और y स्थिति को पास करके छवि में नया पिक्सेल मान सेट करें।

उदाहरण

import java.io.File;
import java.io.IOException;
import java.awt.Color;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class SetPixels {
   public static void main(String args[])throws IOException {
      //Reading the image
      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++) {
            //Retrieving contents of a pixel
            int pixel = img.getRGB(x,y);
            //Creating a Color object from pixel value
            Color color = new Color(pixel, true);
            //Retrieving the R G B values
            int red = color.getRed();
            int green = color.getGreen();
            int blue = color.getBlue();
            //Modifying the RGB values
            green = 150;
            blue = 150;
            //Creating new Color object
            color = new Color(red, green, blue);
            //Setting new Color object to the image
            img.setRGB(x, y, color.getRGB());
         }
      }
      //Saving the modified image
      file = new File("D:\\Images\\setting_pixels.jpg");
      ImageIO.write(img, "jpg", file);
      System.out.println("Done...");
   }
}

इनपुट

जावा ओपनसीवी लाइब्रेरी का उपयोग करके किसी छवि के पिक्सल (आरजीबी मान) को कैसे सेट/संशोधित करें?

आउटपुट

जावा ओपनसीवी लाइब्रेरी का उपयोग करके किसी छवि के पिक्सल (आरजीबी मान) को कैसे सेट/संशोधित करें?

शिफ्ट ऑपरेटरों का उपयोग करके ARGB मान सेट करना -

एक पिक्सेल से प्रत्येक मान को पुनः प्राप्त करने के लिए आपको प्रत्येक रंग की प्रारंभिक स्थिति में दाईं ओर शिफ्ट करने की आवश्यकता होती है यानी लाल आदि के लिए अल्फा 16 के लिए 24 और बिटवाइज़ और 0Xff के साथ संचालन करना। यह वेरिएबल को अंतिम 8 बिट्स को छोड़कर बाकी सभी बिट्स को अनदेखा कर देता है।

आप एआरजीबी को उनकी संबंधित स्थिति में बाईं ओर स्थानांतरित करके एक पिक्सेल का पुनर्निर्माण कर सकते हैं और बिटवाइज़ OR का उपयोग करके उनसे जुड़ सकते हैं।

//Set new RGB value
p = (a<<24) | (r<<16) | (g<<8) | b;
img.setRGB(x, y, p);

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

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

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

    छवि को नकारात्मक में बदलने के लिए एल्गोरिदम प्रत्येक पिक्सेल का लाल हरा नीला मान प्राप्त करें प्रत्येक रंग मान को 255 से घटाएं और उन्हें नए रंग मानों के रूप में सहेजें। संशोधित रंगों से एक नया पिक्सेल मान बनाएं। नया मान पिक्सेल पर सेट करें। जावा में क्रियान्वयन ImageIO.read() विधि क

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

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