Java DIP - пиксели изображения

Изображение содержит двумерный массив пикселей. Фактически это значение тех пикселей, из которых состоит изображение. Обычно изображение может быть цветным или полутоновым.

В Java для обработки изображений используется класс BufferedImage. Вам нужно позвонитьgetRGB() метод BufferedImage класс, чтобы получить значение пикселя.

Получение значения пикселей

Значение пикселя можно получить, используя следующий синтаксис:

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

Получение значений RGB

Метод getRGB()принимает индекс строки и столбца в качестве параметра и возвращает соответствующий пиксель. В случае цветного изображения он возвращает три значения: красный, зеленый, синий. Их можно получить следующим образом:

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

Получение ширины и высоты изображения

Высоту и ширину изображения можно получить, вызвав getWidth() и getHeight()методы класса BufferedImage. Его синтаксис приведен ниже:

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

Помимо этих методов, в классе BufferedImage поддерживаются другие методы. Они кратко описаны -

Sr. No. Метод и описание
1

copyData(WritableRaster outRaster)

Он вычисляет произвольную прямоугольную область BufferedImage и копирует ее в указанный WritableRaster.

2

getColorModel()

Он возвращает ColorModel изображения.

3

getData()

Он возвращает изображение как одну большую плитку.

4

getData(Rectangle rect)

Он вычисляет и возвращает произвольную область BufferedImage.

5

getGraphics()

Этот метод возвращает Graphics2D, но здесь для обратной совместимости.

6

getHeight()

Он возвращает высоту BufferedImage.

7

getMinX()

Он возвращает минимальную координату x этого BufferedImage.

8

getMinY()

Он возвращает минимальную координату y этого BufferedImage.

9

getRGB(int x, int y)

Он возвращает целочисленный пиксель в цветовой модели RGB по умолчанию (TYPE_INT_ARGB) и цветовом пространстве sRGB по умолчанию.

10

getType()

Возвращает тип изображения.

пример

В следующем примере показано использование класса Java BufferedImage, который отображает пиксели изображения размером (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();
   }
}

Вывод

Когда вы выполняете приведенный выше пример, он печатает пиксели следующего изображения -

Original Image

Pixels Output

Если вы прокрутите вывод вниз, то увидите следующую картину: