Java DIP - Pixels d'image

Une image contient un tableau bidimensionnel de pixels. C'est en fait la valeur de ces pixels qui composent une image. Une image peut généralement être en couleur ou en niveaux de gris.

En Java, la classe BufferedImage est utilisée pour gérer les images. Vous devez appelergetRGB() méthode de la BufferedImage class pour obtenir la valeur du pixel.

Obtenir la valeur en pixels

La valeur du pixel peut être reçue en utilisant la syntaxe suivante:

Color c = new Color(image.getRGB(j, i));

Obtention des valeurs RVB

La méthode getRGB()prend l'index de ligne et de colonne comme paramètre et renvoie le pixel approprié. Dans le cas d'une image couleur, il renvoie trois valeurs qui sont (Rouge, Vert, Bleu). Ils peuvent être obtenus comme suit -

c.getRed();
c.getGreen();
c.getBlue();

Obtenir la largeur et la hauteur de l'image

La hauteur et la largeur de l'image peuvent être obtenues en appelant le getWidth() et getHeight()méthodes de la classe BufferedImage. Sa syntaxe est donnée ci-dessous -

int width = image.getWidth();
int height = image.getHeight();

En dehors de ces méthodes, il existe d'autres méthodes prises en charge dans la classe BufferedImage. Ils sont décrits brièvement -

N ° Sr. Méthode et description
1

copyData(WritableRaster outRaster)

Il calcule une région rectangulaire arbitraire de BufferedImage et la copie dans un WritableRaster spécifié.

2

getColorModel()

Il renvoie le ColorModel d'une image.

3

getData()

Il renvoie l'image comme une grande tuile.

4

getData(Rectangle rect)

Il calcule et renvoie une région arbitraire de BufferedImage.

5

getGraphics()

Cette méthode renvoie un Graphics2D, mais est là pour la compatibilité descendante.

6

getHeight()

Il renvoie la hauteur de BufferedImage.

sept

getMinX()

Il renvoie la coordonnée x minimale de cette BufferedImage.

8

getMinY()

Il renvoie la coordonnée y minimale de cette BufferedImage.

9

getRGB(int x, int y)

Il renvoie un pixel entier dans le modèle de couleur RVB par défaut (TYPE_INT_ARGB) et dans l'espace colorimétrique sRGB par défaut.

dix

getType()

Il renvoie le type d'image.

Exemple

L'exemple suivant illustre l'utilisation de la classe java BufferedImage qui affiche les pixels d'une image de taille (100 x 100) -

import java.awt.*;
import java.awt.image.BufferedImage;

import java.io.*;

import javax.imageio.ImageIO;
import javax.swing.JFrame;

class Pixel {
   BufferedImage image;
   int width;
   int height;
   
   public Pixel() {
      try {
         File input = new File("blackandwhite.jpg");
         image = ImageIO.read(input);
         width = image.getWidth();
         height = image.getHeight();
         
         int count = 0;
         
         for(int i=0; i<height; i++) {
         
            for(int j=0; j<width; j++) {
            
               count++;
               Color c = new Color(image.getRGB(j, i));
               System.out.println("S.No: " + count + " Red: " + c.getRed() +"  Green: " + c.getGreen() + " Blue: " + c.getBlue());
            }
         }

      } catch (Exception e) {}
   }
   
   static public void main(String args[]) throws Exception {
      Pixel obj = new Pixel();
   }
}

Production

Lorsque vous exécutez l'exemple ci-dessus, il imprimerait les pixels de l'image suivante -

Original Image

Pixels Output

Si vous faites défiler la sortie vers le bas, le modèle suivant apparaît: