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

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

रंगीन छवि को सेपिया में बदलने के लिए एल्गोरिथम -

  • प्रत्येक पिक्सेल का लाल हरा नीला मान प्राप्त करें

  • इन 3 रंगों का औसत प्राप्त करें।

  • गहराई और तीव्रता के मानों को परिभाषित करें (आदर्श रूप से 20, और 30)।

  • मानों को −

    . के रूप में संशोधित करें
    • लाल =लाल + (गहराई*2)।

    • हरा =हरा +गहराई।

    • नीला =नीला-तीव्रता।

  • सुनिश्चित करें कि संशोधित मान 0 से 255 के बीच हैं।

  • संशोधित रंगों से एक नया पिक्सेल मान बनाएं और नया मान पिक्सेल पर सेट करें।

जावा में क्रियान्वयन

  • ImageIO.read() विधि का उपयोग करके आवश्यक छवि पढ़ें।

  • छवि की ऊंचाई और चौड़ाई प्राप्त करें।

  • लूप के लिए नेस्टेड का उपयोग करना छवि में प्रत्येक पिक्सेल से होकर गुजरता है।

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

  • ऊपर से प्राप्त पिक्सेल मान asparameter को पास करके एक Color ऑब्जेक्ट बनाएं।

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

  • एल्गोरिदम में निर्दिष्ट के अनुसार नए लाल, हरे और नीले मानों की गणना करें।

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

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

उदाहरण

import java.io.File;
import java.io.IOException;
import java.awt.Color;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class Color2Sepia {
   public static void main(String args[])throws IOException {
      //Reading the image
      File file= new File("D:\\Images\\cuba.jpg");
      BufferedImage img = ImageIO.read(file);
      for (int y = 0; y < img.getHeight(); y++) {
         for (int x = 0; x < img.getWidth(); x++) {
            //Retrieving the values 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();
            int avg = (red+green+blue)/3;
            int depth = 20;
            int intensity = 30;
            red= avg+(depth*2);
            green = avg+depth;
            blue = avg-intensity;
            //Making sure that RGB values lies between 0-255
            if (red > 255)red = 255;
            if (green > 255)green = 255;
            if (blue > 255)blue = 255;
            if (blue<0)blue=0;
            //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\\sepia_image2.jpg");
      ImageIO.write(img, "jpg", file);
      System.out.println("Done...");
   }
}

इनपुट

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

आउटपुट

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


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

    द cvtColor() Imgproc . की विधि वर्ग छवि के रंग को एक से दूसरे में बदलता/बदलता है। यह विधि तीन मापदंडों को स्वीकार करती है - स्रोत - स्रोत का प्रतिनिधित्व करने वाली एक मैट्रिक्स वस्तु। डीएसटी - गंतव्य का प्रतिनिधित्व करने वाली एक मैट्रिक्स वस्तु। कोड - एक पूर्णांक मान जो गंतव्य छवि के रंग को

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

    cvtColor() Imgproc . की विधि वर्ग छवि के रंग को एक से दूसरे में बदलता/बदलता है। यह विधि तीन मापदंडों को स्वीकार करती है - स्रोत - स्रोत का प्रतिनिधित्व करने वाली एक मैट्रिक्स वस्तु। डीएसटी - गंतव्य का प्रतिनिधित्व करने वाली एक मैट्रिक्स वस्तु। कोड - एक पूर्णांक मान जो गंतव्य छवि के रंग को द

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

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