Test2

MATLAB values: [ 33 105 9 ] from the png file
Java values: [ 101 172 53 ] after internal processing

C:\ece595_06\image>java Test2
BufferedImage@4aaa045f: type = 10 
ColorModel: #pixelBits = 8 numComponents = 1 
color space = java.awt.color.ICC_ColorSpace@60051f44 
transparency = 1 has alpha = false isAlphaPre = false 
ByteInterleavedRaster: width = 360 height = 120 
#numDataElements 1 dataOff[0] = 0
Type: BYTE_GRAY
ColorSpace Type: 6
This is CS_sRGB: false

pixel ff656565
java.awt.Color[r=101,g=101,b=101]
fraction 101.000
pixel ffacacac
java.awt.Color[r=172,g=172,b=172]
fraction 172.000
pixel ff353535
java.awt.Color[r=53,g=53,b=53]
fraction 53.0000
Sum 326.000


Test2.java

import java.awt.*;
import java.awt.image.*;
import java.awt.color.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.JFrame;

// MATLAB: 0.2989 * R + 0.5870 * G + 0.1140 * B

public class Test2 {

    public static void infoImage(BufferedImage img) {
	System.out.println(img);
	System.out.println("Type: " + getTypeString(img.getType()));
	ColorModel model = img.getColorModel();
	ColorSpace space = model.getColorSpace();
	System.out.println("ColorSpace Type: " + space.getType());
	System.out.println("This is CS_sRGB: " + space.isCS_sRGB());
    }

    public static String getTypeString(int type) {
	switch (type) {
	case 0: return "CUSTOM";
	case 1: return "INT_RGB";
	case 5: return "3BYTE_BGR";
	case 10: return "BYTE_GRAY";
	default: return "UNKNOWN";
	}
    }

    public static void main(String[] args) {

	String filename = "gray.png";
	if (args.length>0) filename = args[0];

	showImage f1 = new showImage(filename);
	f1.setLocation(100,100);
	f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	int w = 120;
	int p;
	Color c;
	double frac, sum=0.0;
	infoImage(f1.img);
	for (int n=0; n<3; n++) {
		p = f1.img.getRGB(60+w*n,60);
		c = new Color(p);
		System.out.format("pixel %x%n",p);		
		System.out.println(c);
		frac = c.getRed();
		System.out.format("fraction %g%n",frac);
		sum = sum + frac;
	}
	System.out.format("Sum %g%n",sum);
   }
}


Maintained by John Loomis, updated Thu Oct 10 11:30:25 2013