Java DIP - Görüntü Pikselleri
Bir görüntü iki boyutlu bir piksel dizisi içerir. Aslında bir görüntüyü oluşturan bu piksellerin değeridir. Genellikle bir görüntü renkli veya gri tonlamalı olabilir.
Java'da, BufferedImage sınıfı görüntüleri işlemek için kullanılır. Araman gerekgetRGB() yöntemi BufferedImage Pikselin değerini almak için sınıf.
Piksel Değeri Almak
Piksel değeri aşağıdaki sözdizimi kullanılarak alınabilir−
Color c = new Color(image.getRGB(j, i));
RGB Değerlerini Alma
Yöntem getRGB()satır ve sütun dizinini parametre olarak alır ve uygun pikseli döndürür. Renkli görüntü durumunda, (Kırmızı, Yeşil, Mavi) olan üç değer döndürür. Aşağıdaki gibi alınabilirler−
c.getRed();
c.getGreen();
c.getBlue();
Görüntünün Genişliğini ve Yüksekliğini Alma
Görüntünün yüksekliği ve genişliği şu çağrı ile alınabilir getWidth() ve getHeight()BufferedImage sınıfının yöntemleri. Söz dizimi aşağıda verilmiştir given
int width = image.getWidth();
int height = image.getHeight();
Bu yöntemlerin dışında BufferedImage sınıfında desteklenen başka yöntemler de vardır. Kısaca açıklanmıştır−
Sr.No. | Yöntem ve Açıklama |
---|---|
1 | copyData(WritableRaster outRaster) BufferedImage'ın rastgele bir dikdörtgen bölgesini hesaplar ve bunu belirtilen bir WritableRaster'a kopyalar. |
2 | getColorModel() Bir görüntünün ColorModel'ini döndürür. |
3 | getData() Görüntüyü tek bir büyük karo olarak döndürür. |
4 | getData(Rectangle rect) BufferedImage'ın rastgele bir bölgesini hesaplar ve döndürür. |
5 | getGraphics() Bu yöntem bir Graphics2D döndürür, ancak geriye dönük uyumluluk için buradadır. |
6 | getHeight() BufferedImage'ın yüksekliğini döndürür. |
7 | getMinX() Bu BufferedImage'ın minimum x koordinatını döndürür. |
8 | getMinY() Bu BufferedImage'ın minimum y koordinatını döndürür. |
9 | getRGB(int x, int y) Varsayılan RGB renk modelinde (TYPE_INT_ARGB) ve varsayılan sRGB renk alanında bir tamsayı pikseli döndürür. |
10 | getType() Görüntü türünü döndürür. |
Misal
Aşağıdaki örnek, (100 x 100) boyutundaki bir görüntünün piksellerini görüntüleyen java BufferedImage sınıfının kullanımını gösterir -
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();
}
}
Çıktı
Yukarıdaki örneği çalıştırdığınızda, aşağıdaki görüntünün piksellerini yazdıracaktır -
Original Image
Pixels Output
Çıkışı aşağı kaydırırsanız, aşağıdaki desen görülür−