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 อธิบายสั้น ๆ

ซีเนียร์ วิธีการและคำอธิบาย
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

หากคุณเลื่อน ouput ลงจะเห็นรูปแบบต่อไปนี้