ImageJ uses the abstract class ImageProcessor, which is "roughly" an extension of the BufferedImage found into java.awt.
You can use one of the method proposed into the ImageProcessor:
public abstract int getPixel(int x, int y);
public abstract int get(int x, int y);
public abstract int get(int index);
But it gets a little bit messy when you want to access pixels encoding on multiple channels (colors images).
Here is a simple way to access pixels using the raster:
ImageProcessor myimage = ... ;
BufferedImage image = myimage.getBufferedImage() ;
int intensity = image.getRaster().getSample(0, 0, 0) ; // Get the value.
image.getRaster().setSample(0, 0, 0, NewValue) ; // Set a new value.
Thats the simplest way, but not the fastest. The fastest being the direct access to the values, which are stored into the DataBuffer, but then you have to deal with the type.