Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

JAVA how to get rgb values from an image

  1. Dec 16, 2011 #1

    i'm kinda new in this programming thingy so i hope you guys can help me.

    i wanted to code a program that can identify whether a banana is ripe or not. basically, i have two image of banana; one yellow in color and another one is green. so i'm thinking about using AI technique (backpropagation maybe) to identify the banana ripeness.

    i search for some article on how to do it and most of them start with loading the image and extract the rgb value. this is what i've done. its not much because i dunno what to do next. can anybody help?

    import java.io.*;
    import javax.imageio.ImageIO;
    import java.awt.image.BufferedImage;

    public class banana
    public static void main(String [] args)throws Exception
    //get image
    File imageFile= new File("yellowbanana.jpg");
    BufferedImage image = ImageIO.read(imageFile);

    //if file not exist
    System.out.println("File NOT exists");

    int w = image.getWidth();
    int h = image.getHeight();

    System.out.println("w=" + w + ", h=" + h);

    next i should get the pixel of the image. is it correct?
  2. jcsd
  3. Dec 16, 2011 #2


    Staff: Mentor

    Unless the image is very small, it probably won't consist of a pixel, but will instead consist of w * h pixels. You also need to know how the image is encoded - its color model, which indicates how many bits are used for red, green, and blue, and if there are alpha bits.
  4. Dec 16, 2011 #3
    thnk you for ur reply mark..

    the banana image i have is 400pixels height and 400pixels width..

    how may i know how the image is encoded? i don't understand that part.

    oh, btw, i change my coding. i convert the banana image into binary. is changing the image to binary retain the color values?
  5. Dec 16, 2011 #4


    Staff: Mentor

    Since you are using the BufferedImage class, you should be looking at the documentation for it (see http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/image/BufferedImage.html [Broken]).

    You can find out how the data is encoded by using the getType method on BufferedImage. This method returns one of the constants that describes the color encoding scheme.
    Last edited by a moderator: May 5, 2017
  6. Dec 27, 2011 #5
    hye.. i managed to convert image into grayscale and into binary... however the binary string i got is too long (like 42 pagesssss!). how can i make it shorter? do i need to resize the picture's pixel or something?
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook