2013-09-12 2 views
1

Я пытаюсь получить значение интенсивности для определенного пикселя в монохромном изображении «оттенки серого». У меня есть псевдокод, но до сих пор мне не удалось реализовать что-то, что действительно работает.Монохромное изображение в оттенках серого, получить интенсивность пикселя

/** 
* Retrieve the intensity value at location ('row', 'column') of the image 'img' and return it 
* Note: 
* - the 2D image is stored as an 8bit, 1D, row-major array of type byte 
* - the data type byte is signed in Java 
* - Slide 27 of chapter 2 introduces the representation of an image 
* @param img in row major format 
* @param row to evaluate 
* @param column to evaluate 
* @param width of img 
* @param height of img 
* @return the intensity value at row and column if within bounds, -1 otherwise 
*/ 
public int getIntensityValue(byte[] img, int row, int column, int width, int height) { 

     int intensity = img[row,column]; 

     return intensity; 
} 

ответ

1

Может быть, это поможет вам:

http://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html

http://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageIO.html

BufferedImage img = ImageIO.read(new File("filePath.png")); 

int sRbgColor = img.getRGB(int x, int y); 

Color c = new Color(sRbgColor); 
int red = c.getRed(); 
int green = c.getGreen(); 
int blue = c.getBlue(); 

Если это монохромное, а затем красный зеленый и синий должны быть равны.

Смежные вопросы