Java DIP - Điểm ảnh hình ảnh

Một hình ảnh chứa một mảng pixel hai chiều. Nó thực sự là giá trị của những pixel đó tạo nên một hình ảnh. Thông thường, một hình ảnh có thể là màu hoặc thang độ xám.

Trong Java, lớp BufferedImage được sử dụng để xử lý hình ảnh. Bạn cần gọigetRGB() phương pháp của BufferedImage lớp để nhận giá trị của pixel.

Nhận giá trị pixel

Giá trị pixel có thể được nhận bằng cú pháp sau

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

Nhận giá trị RGB

Phương pháp getRGB()lấy chỉ số hàng và cột làm tham số và trả về pixel thích hợp. Trong trường hợp hình ảnh màu, nó trả về ba giá trị là (Đỏ, Xanh lá cây, Xanh lam). Chúng có thể nhận được như sau:

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

Nhận chiều rộng và chiều cao của hình ảnh

Chiều cao và chiều rộng của hình ảnh có thể nhận được bằng cách gọi getWidth()getHeight()các phương thức của lớp BufferedImage. Cú pháp của nó được đưa ra bên dưới−

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

Ngoài các phương thức này, còn có các phương thức khác được hỗ trợ trong lớp BufferedImage. Chúng được mô tả ngắn gọn

Sr.No. Phương pháp & Mô tả
1

copyData(WritableRaster outRaster)

Nó tính toán một vùng hình chữ nhật tùy ý của BufferedImage và sao chép nó vào một WordsRaster được chỉ định.

2

getColorModel()

Nó trả về ColorModel của một hình ảnh.

3

getData()

Nó trả về hình ảnh dưới dạng một ô lớn.

4

getData(Rectangle rect)

Nó tính toán và trả về một vùng tùy ý của BufferedImage.

5

getGraphics()

Phương thức này trả về Graphics2D, nhưng ở đây để tương thích ngược.

6

getHeight()

Nó trả về chiều cao của BufferedImage.

7

getMinX()

Nó trả về tọa độ x tối thiểu của BufferedImage này.

số 8

getMinY()

Nó trả về tọa độ y tối thiểu của BufferedImage này.

9

getRGB(int x, int y)

Nó trả về một pixel số nguyên trong mô hình màu RGB mặc định (TYPE_INT_ARGB) và không gian màu sRGB mặc định.

10

getType()

Nó trả về loại hình ảnh.

Thí dụ

Ví dụ sau minh họa việc sử dụng lớp java BufferedImage hiển thị các pixel có kích thước hình ảnh (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();
   }
}

Đầu ra

Khi bạn thực hiện ví dụ trên, nó sẽ in ra các pixel của hình ảnh sau:

Original Image

Pixels Output

Nếu bạn cuộn xuống phía trên, mẫu sau sẽ thấy: