Java DIP - Pixel immagine

Un'immagine contiene una matrice bidimensionale di pixel. In realtà è il valore di quei pixel che compongono un'immagine. Di solito un'immagine potrebbe essere a colori o in scala di grigi.

In Java, la classe BufferedImage viene utilizzata per gestire le immagini. Devi chiamaregetRGB() metodo del BufferedImage class per ottenere il valore del pixel.

Ottenere il valore dei pixel

Il valore del pixel può essere ricevuto usando la seguente sintassi -

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

Ottenere i valori RGB

Il metodo getRGB()accetta l'indice di riga e colonna come parametro e restituisce il pixel appropriato. In caso di immagine a colori, restituisce tre valori che sono (Rosso, Verde, Blu). Possono essere ottenuti come segue:

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

Ottenere la larghezza e l'altezza dell'immagine

L'altezza e la larghezza dell'immagine possono essere ottenute chiamando il getWidth() e getHeight()metodi della classe BufferedImage. La sua sintassi è data di seguito -

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

Oltre a questi metodi, ci sono altri metodi supportati nella classe BufferedImage. Sono descritti brevemente

Sr.No. Metodo e descrizione
1

copyData(WritableRaster outRaster)

Calcola un'area rettangolare arbitraria di BufferedImage e la copia in un WritableRaster specificato.

2

getColorModel()

Restituisce ColorModel di un'immagine.

3

getData()

Restituisce l'immagine come un'unica grande tessera.

4

getData(Rectangle rect)

Calcola e restituisce una regione arbitraria di BufferedImage.

5

getGraphics()

Questo metodo restituisce un Graphics2D, ma è qui per compatibilità con le versioni precedenti.

6

getHeight()

Restituisce l'altezza di BufferedImage.

7

getMinX()

Restituisce la coordinata x minima di questa BufferedImage.

8

getMinY()

Restituisce la coordinata y minima di questa BufferedImage.

9

getRGB(int x, int y)

Restituisce un pixel intero nel modello di colore RGB predefinito (TYPE_INT_ARGB) e nello spazio colore sRGB predefinito.

10

getType()

Restituisce il tipo di immagine.

Esempio

Il seguente esempio dimostra l'uso della classe java BufferedImage che visualizza i pixel di un'immagine di dimensioni (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();
   }
}

Produzione

Quando si esegue l'esempio sopra, verranno stampati i pixel dell'immagine seguente:

Original Image

Pixels Output

Se scorri verso il basso l'uscita, viene visualizzato il seguente modello -