2013-04-12 20 views
5

Bu kodu kullanarak gri tonlamaya dönüştürülmüş bir BufferedImage sahibim. Genellikle piksel değerlerini BufferedImage.getRGB(i,j) ve R, G ve B için her bir değere sahibim. Ancak gri tonlamalı bir görüntüde bir pikselin değerini nasıl alabilirim?BufferedImage - gri tonlamalı renkli model resimdeki bir pikselin değerini alma

DÜZENLEME: Üzgünüm, dönüştürme işlemini unuttuysanız.

static BufferedImage toGray(BufferedImage origPic) { 
    BufferedImage pic = new BufferedImage(origPic.getWidth(), origPic.getHeight(), BufferedImage.TYPE_BYTE_GRAY); 
    Graphics g = pic.getGraphics(); 
    g.drawImage(origPic, 0, 0, null); 
    g.dispose(); 
    return pic; 
} 
+0

Dönüştürmek için kullandığınız kodu kaydeder misiniz? –

+0

"bu kodu kullanarak." kod nerede? –

cevap

16

böyle (Kırmızı, yeşil, mavi, Gri) değerler elde edebilirsiniz böylece RGB görüntüyü varsa:

BufferedImage img;//////read the image 
int rgb = img.getRGB(x, y); 
int r = (rgb >> 16) & 0xFF; 
int g = (rgb >> 8) & 0xFF; 
int b = (rgb & 0xFF); 

ve gri (r, g, b ortalamasıdır), örneğin:

int gray = (r + g + b)/3; 

ancak RGB görüntüyü (24bit) görüntü (8 bit gri) dönüştürmek ise:

int gray= img.getRGB(x, y)& 0xFF;/////////will be the gray value 
+0

Bir pikselin –

+0

@SriHarshaChilakapati alfa değerini (rgb >> 24) & 0xFF – Kajzer

+0

alfa: (rgb >> 24) & 0xFF –

İlgili konular