j2d
Class ImageUtils

java.lang.Object
  extended by j2d.ImageUtils

public final class ImageUtils
extends java.lang.Object


Field Summary
static java.awt.image.BufferedImage backgroundImage
           
static float HALF_PI
           
static float PI
           
static float QUARTER_PI
           
static int SELECTED
           
static float TWO_PI
           
static int UNSELECTED
           
 
Method Summary
static javax.media.jai.RenderedOp addImages(java.awt.Image image1, java.awt.Image image2)
           
static javax.media.jai.RenderedOp addImages(javax.media.jai.PlanarImage image1, javax.media.jai.PlanarImage image2)
           
static java.awt.image.BufferedImage affineXform(double scalex, double scaley, double shearx, double sheary, double transx, double transy, double radians, java.awt.image.BufferedImage bi)
          Do a bilinear inverse affine transform and throw and exception if the xform is not invertable.
static javax.media.jai.RenderedOp andImages(java.awt.Image image1, java.awt.Image image2)
           
static javax.media.jai.RenderedOp andImages(javax.media.jai.PlanarImage image1, javax.media.jai.PlanarImage image2)
           
static java.awt.Image average(java.awt.Image[] ia)
          Computer the average image from the image array, ia.
static java.awt.Image average(java.awt.Image img1, java.awt.Image img2)
          Compute the average image between img1 and img2.
static float bias(float a, float b)
          Apply a bias to a number in the unit interval, moving numbers towards 0 or 1 according to the bias parameter.
static int bilinearInterpolate(float x, float y, int nw, int ne, int sw, int se)
          Bilinear interpolation of ARGB values.
static javax.media.jai.RenderedOp boxFilterImage(javax.media.jai.PlanarImage image, int wid, int ht, java.awt.Point pixelPos)
           
static int brightnessNTSC(int rgb)
          Return the NTSC gray level of an RGB value.
static java.awt.Image byte2Image(byte[][] r)
           
static java.awt.image.BufferedImage captureScreen(java.awt.Component c)
          Capture the screen using the component size and location for the image size and location.
static java.awt.image.BufferedImage captureScreen(java.awt.Rectangle inputRectangle)
           
static java.awt.image.BufferedImage captureScreen(java.awt.Rectangle inputRectangle, java.awt.Dimension outputDim)
           
static java.awt.image.BufferedImage captureWholeScreen()
          Captures the entire screen
static java.awt.image.BufferedImage changeColors(float[][] colorMatrix, java.awt.image.BufferedImage bi)
           
static java.awt.Image changeColors(float[][] colorMatrix, java.awt.Image img)
           
static ImageBean changeColors(float[][] colorMatrix, ImageBean ib)
           
static float circleDown(float x)
          A "circle down" function.
static float circleUp(float x)
          A "circle up" function.
static float clamp(float x, float a, float b)
          Clamp a value to an interval.
static int clamp(int x, int a, int b)
          Clamp a value to an interval.
static void clip(short[][] a, short min, short max)
           
static java.awt.image.BufferedImage cloneImage(java.awt.image.BufferedImage image)
           
static java.awt.Image colorize(double ar, double ag, double ab, java.awt.Image img)
           
static int colorSpline(float x, int numKnots, int[] knots)
          Compute a Catmull-Rom spline for RGB values.
static int colorSpline(int x, int numKnots, int[] xknots, int[] yknots)
          Compute a Catmull-Rom spline for RGB values, but with variable knot spacing.
static java.awt.Image combineBands(float ar, float ag, float ab, java.awt.Image img)
           
static java.awt.Image complexConjugate(java.awt.Image img)
           
static void complexConjugateTest()
          This is the complex conjugate in the spatial domain, and frequency domain.
static void composeThroughMask(java.awt.image.Raster src, java.awt.image.WritableRaster dst, java.awt.image.Raster sel)
          Compose src onto dst using the alpha of sel to interpolate between the two.
static javax.media.jai.RenderedOp compositeImages(javax.media.jai.PlanarImage sourceImage1, javax.media.jai.PlanarImage sourceImage2, boolean alphaPremultiplied, int destAlpha)
           
static java.awt.Image concatenateImages(java.awt.Image[] images, java.awt.Dimension celldim, int cols, int rows)
           
static javax.media.jai.TiledImage concatenateImages(javax.media.jai.PlanarImage[] planarImageArray, java.awt.Dimension celldim, int cols, int rows)
           
static java.awt.image.BufferedImage convertImageToARGB(java.awt.Image image)
          Convert an Image into a TYPE_INT_ARGB BufferedImage.
static java.awt.Image convolution(java.awt.Image img, float[][] k)
           
static java.awt.Image convolution(java.awt.Image img, java.awt.image.Kernel k)
          Convolve an image with a kernel using JAI.
static java.awt.image.BufferedImage convolve(java.awt.image.BufferedImage bi, float[][] blurMatrix)
           
static java.awt.Image convolveJai(java.awt.Image image, ImageMatrixBean imb)
          Convolve an image using the ImageMatrixBean and the jai implementation of convolution.
static java.awt.Image convolveR2(java.awt.Image image)
          Convolve an image using the kernel in the ImageMatrixBean.
static java.awt.image.BufferedImage createImage(java.awt.image.ImageProducer producer)
           
static javax.media.jai.RenderedOp cropImage(java.awt.image.BufferedImage image, java.awt.Rectangle rect)
           
static java.awt.Image cropImage(java.awt.Image image, java.awt.Rectangle r)
          Crop an image to the size of the rectangle, r.
static javax.media.jai.RenderedOp cropImage(javax.media.jai.PlanarImage image, java.awt.Rectangle rect)
           
static javax.media.jai.RenderedOp cropImage(javax.media.jai.PlanarImage image, java.awt.geom.Rectangle2D rect)
           
static java.awt.Image cropImage(ShortImageBean sib, java.awt.Point min, java.awt.Point max)
          Crop the image in the SIB to the size of min and max
static java.awt.Image cropImageToIntegralPowerOfTwo(java.awt.Image image)
           
static ShortImageBean cutBean(ShortImageBean sib, int x1, int y1, int w, int h)
           
static javax.media.jai.RenderedOp DCTImage(javax.media.jai.PlanarImage image)
           
static javax.media.jai.RenderableOp DCTImage(javax.media.jai.RenderableOp image)
           
static javax.media.jai.RenderedOp DFTImage(java.awt.Image img)
           
static javax.media.jai.RenderedOp DFTImage(javax.media.jai.PlanarImage image, javax.media.jai.operator.DFTScalingType scalingType, javax.media.jai.operator.DFTDataNature dataNature)
           
static javax.media.jai.RenderableOp DFTImage(javax.media.jai.RenderableOp image, javax.media.jai.operator.DFTScalingType scalingType, javax.media.jai.operator.DFTScalingType dataNature)
           
 javax.media.jai.PlanarImage dftOP(javax.media.jai.PlanarImage image, java.lang.Integer scalingType, java.lang.Integer dataNature)
           
static javax.media.jai.PlanarImage dilate(java.awt.image.BufferedImage img)
           
static void displayImage(java.awt.Image image, java.lang.String title)
          Display an image on the screen.
static void displayImage(javax.media.jai.PlanarImage image, java.lang.String title)
           
static void displayImage(javax.media.jai.RenderedOp renderedOp)
           
static void displayImageAwt(javax.media.jai.PlanarImage image, java.lang.String title)
           
static void displayPSD(java.awt.Image img)
           
static javax.media.jai.RenderedOp divideImages(java.awt.Image image1, java.awt.Image image2)
           
static javax.media.jai.RenderedOp divideImages(javax.media.jai.PlanarImage image1, javax.media.jai.PlanarImage image2)
           
static java.awt.Image enahe(double alpha, java.awt.Image img)
           
static javax.media.jai.PlanarImage erode(java.awt.image.BufferedImage img)
           
static javax.media.jai.PlanarImage erode(javax.media.jai.PlanarImage pi)
           
static javax.media.jai.RenderedOp expImage(javax.media.jai.PlanarImage image)
           
static javax.swing.ImageIcon fetchIcon(java.awt.Window w, java.lang.String iconFileName)
          Helper function to load an icon image from the JAR file of which this class is a part.
static java.awt.Image filterFFTR2(java.awt.Image img1, java.awt.Image img2)
          Use a radix 2 fft to filter img1 with img2.
static void fitScreen(java.awt.Component c)
           
static java.awt.Image flipAndRotate(java.awt.Image img)
           
static void freiChen(ShortImageBean shortImageBean)
           
static float gain(float a, float b)
          A variant of the gamma function.
static java.awt.Image gaussian(int kernelWidth, double sigma, java.awt.Image img)
           
static short getA(int valARGB)
           
static short getAlpha(int argb)
           
static short[] getAlpha(int[] argb)
           
static int[] getArgbToInt(short[] alpha, double[] red, double[] green, double[] blue)
           
static int[] getArgbToInt(short[] alpha, float[] red, float[] green, float[] blue)
           
static int[] getArgbToInt(short[] alpha, short[] red, short[] green, short[] blue)
           
static int getArgbToInt(short alpha, short red, short green, short blue)
           
static javax.media.jai.RenderedOp getBandSelect(javax.media.jai.PlanarImage image, int bandNum)
           
static java.awt.Image getBinaryTemplate(java.awt.Image img)
           
static short getBlue(int rgb)
          Get the blue part of a packed rgb int.
static short[] getBlue(int[] argb)
           
static short[] getBlueArray(int[] inputArray)
           
static javax.media.jai.RenderedOp getBlurImage(javax.media.jai.PlanarImage image)
           
static java.awt.image.BufferedImage getBufferedImage(java.io.File imageFile)
           
static java.awt.image.BufferedImage getBufferedImage(java.awt.Image img)
           
static java.awt.image.BufferedImage getBufferedImage(ImageBeanInterface ib)
           
static java.awt.image.BufferedImage getBufferedImage(java.awt.image.RenderedImage img)
           
static java.awt.image.BufferedImage getBufferedImage(java.lang.String s)
           
static java.awt.image.BufferedImage getBufferedImage(java.net.URL url)
           
static java.awt.image.BufferedImage getBufferedImage2(java.awt.Image image)
           
static java.awt.image.BufferedImage getBufferedImage3(java.awt.Image img)
           
static java.awt.Image getContrastBrightnessAdjustedImage(double c, double b, java.awt.Image img)
           
 javax.media.jai.PlanarImage getConvolvedImage(javax.media.jai.PlanarImage image, float[] kernelData, int w, int h)
           
static java.awt.image.ConvolveOp getConvolveOp(java.awt.image.Kernel k)
          Get a convole operator instance from a Kernel instance.
 javax.media.jai.PlanarImage getCroppedImage(javax.media.jai.PlanarImage image, java.awt.Rectangle rect)
           
static java.awt.Rectangle getFullScreen()
           
static java.awt.Image getGifJpgPngImage(java.io.File f)
           
static java.awt.Image getGifOrJpg(java.io.File imageFile)
           
static javax.media.jai.RenderedOp getGrayBandCombine(javax.media.jai.PlanarImage image)
           
static java.awt.Image getGrayImage(java.awt.Image image)
           
static javax.media.jai.RenderedOp getGrayImage(javax.media.jai.PlanarImage image)
           
static java.awt.Image getGrayImage(short[][] g)
          This image converts to gray and rotates and mirrors the image around.
static short getGreen(int rgb)
          Get the green part of a packed rgb int
static short[] getGreen(int[] argb)
           
static short[] getGreenArray(int[] inputArray)
           
static short[][] getGreenFromImage(java.awt.Image img, java.awt.image.ImageObserver io)
           
static java.lang.String getHexImage(ImageBeanInterface ib)
           
static HppFilter3Interface getHppFilter3(java.awt.image.RGBImageFilter f)
          Adapter design pattern
static java.awt.Image getImage()
           
static java.awt.Image getImage(java.awt.image.BufferedImage bi)
           
static java.awt.Image getImage(byte[][] r)
           
static java.awt.Image getImage(java.awt.Component c)
           
static java.awt.Image getImage(java.io.File f)
           
static java.awt.Image getImage(java.awt.Image img, HppFilterInterface f)
           
static java.awt.Image getImage(java.awt.Image img, java.awt.image.RGBImageFilter rgbFilter)
           
static java.awt.Image getImage(int[] pels, int w, int h)
           
static java.awt.Image getImage(javax.media.jai.PlanarImage pi)
           
static java.awt.Image getImage(java.awt.image.RenderedImage img)
           
static java.awt.Image getImage(short[][] g)
           
static java.awt.Image getImage(short[][] r, HppFilterInterface f)
           
static java.awt.Image getImage(short[][] r, short[][] g, short[][] b)
           
static java.awt.Image getImage(short[][] r, short[][] g, short[][] b, HppFilterInterface f)
           
static java.awt.Image getImage(java.lang.String fn)
          Open up an image given a file name.
static java.awt.Image getImage(javax.media.jai.TiledImage ti)
           
static java.awt.Image getImage(java.net.URL url)
           
static ImageBean getImageBean(java.awt.image.BufferedImage bi)
           
static java.lang.String getImageIoFormat()
           
static java.lang.String[] getImageIOFormatNames()
           
static java.awt.Image getImageResource(java.lang.Object o, java.lang.String iconFileName)
           
static java.awt.Image getImageResource(java.awt.Window w, java.lang.String iconFileName)
           
static HppFilter3ImageProcessor getLinearCombineBandsProcessor(float ar, float ag, float ab)
           
static javax.media.jai.PlanarImage getMagnitudeImage(javax.media.jai.PlanarImage planarImage)
           
static java.awt.Image getMedian3by3CrossImage(java.awt.Image img)
           
static int[] getPels(java.awt.Image image)
           
static int[] getPels(java.awt.Image img, int width, int height)
           
static javax.media.jai.RenderableOp getPeriodicShiftImage(javax.media.jai.RenderableOp image, int shiftX, int shiftY)
           
static javax.media.jai.RenderableOp getPhaseImage(javax.media.jai.RenderableOp image)
           
static javax.media.jai.PlanarImage getPlanarImage(java.awt.image.BufferedImage bi)
           
static javax.media.jai.PlanarImage getPlanarImage(java.awt.Image img)
           
static javax.media.jai.PlanarImage[] getPlanarImages(java.awt.Image[] images)
           
static java.awt.Image getPpmJar()
           
static java.awt.Image getPpmJar(java.io.File f)
           
static java.awt.Image getPsd(java.awt.Image img)
           
static java.awt.Image getRandomColorImage(java.awt.Dimension size)
           
static java.awt.Image getRandomGrayImage(java.awt.Dimension size)
           
static short getRed(int rgb)
          Get the red part of a packed rgb int.
static short[] getRed(int[] argb)
           
static short[] getRedArray(int[] inputArray)
           
static javax.media.jai.RenderableOp getRenderable(javax.media.jai.PlanarImage image)
          convert an image into a renderable image.
static java.awt.image.RenderedImage getRenderedImage(java.awt.Image image)
           
static int[] getRGB(java.awt.image.BufferedImage image, int x, int y, int width, int height, int[] pixels)
          A convenience method for getting ARGB pixels from an image.
static java.awt.image.ColorModel getRgbColorModel()
           
static java.awt.image.RGBImageFilter getRGBImageFilter(HppFilter3Interface f)
           
static java.awt.Dimension getScreenSize()
           
static java.awt.Rectangle getSelectedBounds(java.awt.image.BufferedImage p)
           
static javax.media.jai.RenderedOp getSharpenImage(javax.media.jai.PlanarImage image)
           
static java.awt.Image getShortImageZip(java.io.File f)
           
static double getSNRinDb(java.awt.Image in, java.awt.Image out)
           
static javax.media.jai.RenderedOp getSobelHorizontalImage(javax.media.jai.PlanarImage image)
           
static javax.media.jai.RenderedOp getSobelVertImage(javax.media.jai.PlanarImage image)
           
static javax.media.jai.RenderedOp getSovelGradientMagnitudeImage(javax.media.jai.PlanarImage image)
           
static java.awt.image.BufferedImage getSubimage(java.awt.image.BufferedImage image, int x, int y, int w, int h)
           
static java.awt.Image getTiffImage(java.io.File f)
           
static java.awt.Image getTransposedImage(short[][] g)
          This method appears to transpose images
static int getType(java.io.FileInputStream fis)
           
static java.awt.Image getUnahe(java.awt.Image img)
           
static double getVariance(java.awt.Image scene)
           
static double getVarianceTimesN(java.awt.Image scene)
           
static java.awt.Image goodFFTR2Filter(java.awt.Image img1, java.awt.Image img2)
           
static byte[] grabAPngImage(java.awt.Rectangle rect)
          grab a screen capture in png format.
static boolean hasAlpha(java.awt.Image image)
           
static javax.media.jai.RenderableOp idftImage(javax.media.jai.RenderedOp complexop, javax.media.jai.operator.DFTScalingType scalingNone, javax.media.jai.operator.DFTDataNature complexToReal)
           
 javax.media.jai.PlanarImage idftOP(javax.media.jai.PlanarImage image, java.lang.Integer scalingType, java.lang.Integer dataNature)
           
static int[] imagetoInt(double[] imageR, double[] imageG, double[] imageB, int numPixels)
           
static int[] imagetoInt(float[] imageR, float[] imageG, float[] imageB)
           
static int[] imagetoInt(short[] imageR, short[] imageG, short[] imageB, int numPixels)
           
static javax.media.jai.RenderableOp InverseDCTImage(javax.media.jai.RenderableOp image)
           
static javax.media.jai.RenderedOp inverseDCTImage(javax.media.jai.RenderedOp image)
           
static javax.media.jai.RenderableOp inverseDFTImage(javax.media.jai.RenderableOp image, javax.media.jai.operator.DFTScalingType scalingType, javax.media.jai.operator.DFTDataNature dataNature)
           
static java.awt.image.BufferedImage jpegEncode(java.awt.image.BufferedImage bi, int xDensity, int yDensity, float quality)
           
static float lerp(float t, float a, float b)
          Linear interpolation.
static int lerp(float t, int a, int b)
          Linear interpolation.
static javax.media.jai.RenderedOp logImage(javax.media.jai.PlanarImage image)
           
static javax.media.jai.RenderableOp magnitudeImage(javax.media.jai.RenderableOp image)
           
static javax.media.jai.RenderedOp magnitudeImage(javax.media.jai.RenderedOp image)
           
static javax.media.jai.RenderableOp magnitudeSquaredImage(javax.media.jai.RenderableOp image)
           
static javax.media.jai.RenderedOp magnitudeSquaredImage(javax.media.jai.RenderedOp image)
           
static void main(java.lang.String[] args)
           
static java.awt.image.Kernel makeKernel(float[][] k2d)
           
static java.awt.image.Kernel makeKernel(int w, int h, float[] blurMatrix)
           
static short max(short r, short g, short b)
           
static javax.media.jai.RenderedOp maxImages(java.awt.Image image1, java.awt.Image image2)
           
static javax.media.jai.RenderedOp maxImages(javax.media.jai.PlanarImage image1, javax.media.jai.PlanarImage image2)
           
static java.awt.Image medianFilterImage(java.awt.Image image)
           
static javax.media.jai.RenderedOp medianFilterImage(javax.media.jai.PlanarImage image, int maskShape, int maskSize)
           
static short min(short r, short g, short b)
           
static javax.media.jai.RenderedOp minImages(java.awt.Image image1, java.awt.Image image2)
           
static javax.media.jai.RenderedOp minImages(javax.media.jai.PlanarImage image1, javax.media.jai.PlanarImage image2)
           
static int mixColors(float t, int rgb1, int rgb2)
          Linear interpolation of ARGB values.
static double mod(double a, double b)
          Return a mod b.
static float mod(float a, float b)
          Return a mod b.
static int mod(int a, int b)
          Return a mod b.
static javax.media.jai.RenderedOp multiplyImages(java.awt.Image image1, java.awt.Image image2)
           
static javax.media.jai.RenderedOp multiplyImages(javax.media.jai.PlanarImage image1, javax.media.jai.PlanarImage image2)
           
static java.awt.Image negate(java.awt.Image img)
           
static javax.media.jai.RenderedOp notImage(javax.media.jai.PlanarImage image1)
           
static javax.media.jai.RenderedOp orImages(java.awt.Image image1, java.awt.Image image2)
           
static javax.media.jai.RenderedOp orImages(javax.media.jai.PlanarImage image1, javax.media.jai.PlanarImage image2)
           
static javax.media.jai.RenderedOp overlayImages(javax.media.jai.PlanarImage image1, javax.media.jai.PlanarImage image2)
           
static int packInt(int r, int g, int b)
          Return an int packed as ARGB
static void paintCheckedBackground(java.awt.Component c, java.awt.Graphics g, int x, int y, int width, int height)
           
static void pasteBean(ShortImageBean littleOne, ShortImageBean bigOne, int x1, int y1)
          pasteBean alters is bigOne argument
static void pelsToShort(short[][] r, short[][] g, short[][] b, int[] pels, int width, int height)
           
static javax.media.jai.RenderedOp periodicShiftImage(javax.media.jai.RenderedOp image, int shiftX, int shiftY)
           
static javax.media.jai.RenderedOp phaseImage(javax.media.jai.RenderedOp image)
           
static void pixelDifference(ShortImageBean shortImageBean)
           
static javax.media.jai.RenderedOp polarToComplexImage(javax.media.jai.RenderedOp mag, javax.media.jai.RenderedOp phase)
           
static void prewitt(ShortImageBean shortImageBean)
           
static void print(java.awt.Component c)
           
static void print(java.awt.Component c, java.lang.String title)
           
static void print(java.lang.Object[] o)
           
static void printHexImage(java.awt.Image img, java.lang.String title)
           
static void printImageReaderFormats()
           
static void printImageWriterFormats()
           
static float pulse(float a, float b, float x)
          The pulse function.
static int putRGB(short r, short g, short b)
           
static java.awt.Image quadSwap(java.awt.Image img)
          Centers the image by translating the image to the center.
static void quadSwapTest()
           
static void resample(int[] source, int[] dest, int length, int offset, int stride, float[] out)
          An implementation of Fant's resampling algorithm.
static void roberts2(ShortImageBean shortImageBean)
           
static java.awt.Image rotate180(java.awt.Image img)
           
static void saveAsGif(java.awt.Image img, java.io.File f)
           
static void saveAsGif(java.awt.Image img, java.lang.String fn)
           
static void saveAsGifAnimation(java.awt.image.BufferedImage[] img, int ms, boolean looped, java.io.File outputFile)
           
static void saveAsJpeg(java.awt.image.BufferedImage buf, java.io.File f)
           
static void saveAsPPM(java.awt.Image img, java.io.File f)
           
static void saveAsPPM(java.awt.Image img, java.lang.String fn)
           
static void saveAsPPMgz(java.awt.Image img)
           
static void saveAsPPMgz(java.awt.Image img, java.lang.String fn)
           
static void saveAsPPMJar(java.awt.Image img, java.io.File f)
           
static void saveAsTiff(java.awt.image.BufferedImage bi, java.io.File f)
          The following code does not seem to work on a mac.
static java.awt.image.BufferedImage scaleFast(java.awt.image.BufferedImage bi, int width, int height)
          Fast scaling of a buffered image by using replicated pixels.
static java.awt.Image scaleFast(java.awt.Image img, int width, int height)
          Uses the Image.SCALE_FAST rendering hint to make use of replicated pixels for creating the new image.
static javax.media.jai.RenderedOp scaleLayout(java.awt.image.RenderedImage ri, float sx, float sy, float tx, float ty)
           
static java.awt.image.BufferedImage scaleSmooth(java.awt.image.BufferedImage bi, int width, int height)
          Uses the Image.scale method with a Image.SCALE_SMOOTH for a better result than SCALE_FAST.
static java.awt.Image scaleSmooth(java.awt.Image img, int width, int height)
          Uses the Image.SCALE_SMOOTH rendering hint to make use of averaging.
static javax.media.jai.RenderedOp scaleTranslate(java.awt.image.BufferedImage img, float sfx, float sfy, float xTranslate, float yTranslate)
           
static void setRGB(java.awt.image.BufferedImage image, int x, int y, int width, int height, int[] pixels)
          A convenience method for setting ARGB pixels in an image.
static java.awt.Image short2Image(short[][] r)
           
static int[] short2Pels(short[][] r, short[][] g, short[][] b)
           
static void sizeDetector(ShortImageBean shortImageBean)
           
static java.awt.Image skeleton(java.awt.Image img)
           
static java.awt.Image smooth(int kernelWidth, double sigma, java.awt.Image image)
           
static float smoothPulse(float a1, float a2, float b1, float b2, float x)
          A smoothed pulse function.
static float smoothStep(float a, float b, float x)
          A smoothed step function.
static java.awt.Image sobel(java.awt.Image img)
           
static float spline(float x, int numKnots, float[] knots)
          Compute a Catmull-Rom spline.
static float spline(float x, int numKnots, int[] xknots, int[] yknots)
          Compute a Catmull-Rom spline, but with variable knot spacing.
static java.awt.Image square(java.awt.Image img)
           
static float step(float a, float x)
          The step function.
static java.lang.String stripSuffix(java.lang.String s)
           
static javax.media.jai.RenderedOp subtractImages(java.awt.Image image1, java.awt.Image image2)
           
static javax.media.jai.RenderedOp subtractImages(javax.media.jai.PlanarImage image1, javax.media.jai.PlanarImage image2)
           
static java.awt.Image subtractMean(java.awt.Image img)
           
static void testDctImage(java.awt.Image image, java.lang.String title)
           
static void testEdgeTrackImages()
           
static javax.media.jai.RenderableOp testFftImage(java.awt.Image image, java.lang.String title)
           
static void testGetImage()
           
static void testGetRandomColorImage()
           
static void testGetRandomGrayImage()
           
static void testPsdImage()
           
static void testScaleLayout()
           
static void testScaleTranslate()
           
static void testSniff()
           
static void testSubstractImages()
           
static void testTiffReader()
           
static void testVariance()
           
static java.awt.Image threshold(java.awt.Image img, double b)
          Use a b that ranges from 0 to 255.
static float triangle(float x)
          The triangle function.
static java.awt.Image turn180(java.awt.Image img)
           
static java.awt.Image upsideDownMirror(java.awt.Image img)
           
static javax.media.jai.TiledImage viewDFT(javax.media.jai.PlanarImage inputImg)
           
static void waitForImage(java.awt.Component c, java.awt.Image image)
           
static void waitForImage(java.awt.Image img)
           
static void writeHexImage(ImageBeanInterface ib)
           
static javax.media.jai.RenderedOp xorImages(java.awt.Image image1, java.awt.Image image2)
           
static javax.media.jai.RenderedOp xorImages(javax.media.jai.PlanarImage image1, javax.media.jai.PlanarImage image2)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PI

public static final float PI
See Also:
Constant Field Values

HALF_PI

public static final float HALF_PI
See Also:
Constant Field Values

QUARTER_PI

public static final float QUARTER_PI
See Also:
Constant Field Values

TWO_PI

public static final float TWO_PI
See Also:
Constant Field Values

backgroundImage

public static java.awt.image.BufferedImage backgroundImage

SELECTED

public static final int SELECTED
See Also:
Constant Field Values

UNSELECTED

public static final int UNSELECTED
See Also:
Constant Field Values
Method Detail

main

public static void main(java.lang.String[] args)

testScaleTranslate

public static void testScaleTranslate()

dftOP

public javax.media.jai.PlanarImage dftOP(javax.media.jai.PlanarImage image,
                                         java.lang.Integer scalingType,
                                         java.lang.Integer dataNature)

idftOP

public javax.media.jai.PlanarImage idftOP(javax.media.jai.PlanarImage image,
                                          java.lang.Integer scalingType,
                                          java.lang.Integer dataNature)

getImage

public static java.awt.Image getImage(javax.media.jai.TiledImage ti)

concatenateImages

public static java.awt.Image concatenateImages(java.awt.Image[] images,
                                               java.awt.Dimension celldim,
                                               int cols,
                                               int rows)

getPlanarImages

public static javax.media.jai.PlanarImage[] getPlanarImages(java.awt.Image[] images)

addImages

public static javax.media.jai.RenderedOp addImages(java.awt.Image image1,
                                                   java.awt.Image image2)

concatenateImages

public static javax.media.jai.TiledImage concatenateImages(javax.media.jai.PlanarImage[] planarImageArray,
                                                           java.awt.Dimension celldim,
                                                           int cols,
                                                           int rows)

affineXform

public static java.awt.image.BufferedImage affineXform(double scalex,
                                                       double scaley,
                                                       double shearx,
                                                       double sheary,
                                                       double transx,
                                                       double transy,
                                                       double radians,
                                                       java.awt.image.BufferedImage bi)
Do a bilinear inverse affine transform and throw and exception if the xform is not invertable.

Parameters:
scalex - scale about transx and transy
shearx - shear about transx and transy
transx - point about which xform is performed
radians - rotation
Returns:
transformed image.

getPpmJar

public static java.awt.Image getPpmJar()
                                throws java.io.IOException
Throws:
java.io.IOException

getPpmJar

public static java.awt.Image getPpmJar(java.io.File f)
                                throws java.io.IOException
Throws:
java.io.IOException

getPsd

public static java.awt.Image getPsd(java.awt.Image img)

testPsdImage

public static void testPsdImage()

saveAsPPMJar

public static void saveAsPPMJar(java.awt.Image img,
                                java.io.File f)

saveAsPPMgz

public static void saveAsPPMgz(java.awt.Image img,
                               java.lang.String fn)

saveAsPPMgz

public static void saveAsPPMgz(java.awt.Image img)

saveAsPPM

public static void saveAsPPM(java.awt.Image img,
                             java.io.File f)

printImageWriterFormats

public static void printImageWriterFormats()

printImageReaderFormats

public static void printImageReaderFormats()

print

public static void print(java.lang.Object[] o)

getImage

public static java.awt.Image getImage(java.awt.Component c)

testGetImage

public static void testGetImage()

getImage

public static java.awt.Image getImage()

getImage

public static java.awt.Image getImage(java.lang.String fn)
Open up an image given a file name.

Parameters:
fn - a fully qualified file name
Returns:
image

getGifJpgPngImage

public static java.awt.Image getGifJpgPngImage(java.io.File f)

getGifOrJpg

public static java.awt.Image getGifOrJpg(java.io.File imageFile)

waitForImage

public static void waitForImage(java.awt.Component c,
                                java.awt.Image image)

waitForImage

public static void waitForImage(java.awt.Image img)

byte2Image

public static java.awt.Image byte2Image(byte[][] r)

short2Image

public static java.awt.Image short2Image(short[][] r)

getImage

public static java.awt.Image getImage(short[][] r,
                                      short[][] g,
                                      short[][] b,
                                      HppFilterInterface f)

getImage

public static java.awt.Image getImage(short[][] r,
                                      HppFilterInterface f)

short2Pels

public static int[] short2Pels(short[][] r,
                               short[][] g,
                               short[][] b)

getRed

public static short getRed(int rgb)
Get the red part of a packed rgb int.

Parameters:
rgb - a pixel in argb format
Returns:
just the red part.

getGreen

public static short getGreen(int rgb)
Get the green part of a packed rgb int

Parameters:
rgb - a pixel in argb format
Returns:
just the green part.

getBlue

public static short getBlue(int rgb)
Get the blue part of a packed rgb int.

Parameters:
rgb - a pixel in argb format
Returns:
just the blue part

getHppFilter3

public static HppFilter3Interface getHppFilter3(java.awt.image.RGBImageFilter f)
Adapter design pattern

Parameters:
f - a standard RGBImageFilter
Returns:
HppFilter3 Homogenious point processor

getRGBImageFilter

public static java.awt.image.RGBImageFilter getRGBImageFilter(HppFilter3Interface f)

packInt

public static int packInt(int r,
                          int g,
                          int b)
Return an int packed as ARGB

Parameters:
r - red component (0..255)
g - green component (0..255)
b - blue component (0..255)
Returns:
the packed int.

getConvolveOp

public static java.awt.image.ConvolveOp getConvolveOp(java.awt.image.Kernel k)
Get a convole operator instance from a Kernel instance.

Parameters:
k - The kernelinstance
Returns:
an instance of a ConvolveOp.

makeKernel

public static java.awt.image.Kernel makeKernel(int w,
                                               int h,
                                               float[] blurMatrix)

makeKernel

public static java.awt.image.Kernel makeKernel(float[][] k2d)

hasAlpha

public static boolean hasAlpha(java.awt.Image image)

getBufferedImage2

public static java.awt.image.BufferedImage getBufferedImage2(java.awt.Image image)

getBufferedImage3

public static java.awt.image.BufferedImage getBufferedImage3(java.awt.Image img)

getPlanarImage

public static javax.media.jai.PlanarImage getPlanarImage(java.awt.Image img)

getPlanarImage

public static javax.media.jai.PlanarImage getPlanarImage(java.awt.image.BufferedImage bi)

getBufferedImage

public static java.awt.image.BufferedImage getBufferedImage(java.awt.Image img)

getBufferedImage

public static java.awt.image.BufferedImage getBufferedImage(ImageBeanInterface ib)

getImageBean

public static ImageBean getImageBean(java.awt.image.BufferedImage bi)

getImage

public static java.awt.Image getImage(java.awt.image.BufferedImage bi)

changeColors

public static ImageBean changeColors(float[][] colorMatrix,
                                     ImageBean ib)

changeColors

public static java.awt.Image changeColors(float[][] colorMatrix,
                                          java.awt.Image img)

changeColors

public static java.awt.image.BufferedImage changeColors(float[][] colorMatrix,
                                                        java.awt.image.BufferedImage bi)

getRgbColorModel

public static java.awt.image.ColorModel getRgbColorModel()

fitScreen

public static void fitScreen(java.awt.Component c)

getImage

public static java.awt.Image getImage(javax.media.jai.PlanarImage pi)

getImage

public static java.awt.Image getImage(java.awt.Image img,
                                      HppFilterInterface f)

getImage

public static java.awt.Image getImage(java.awt.Image img,
                                      java.awt.image.RGBImageFilter rgbFilter)

getImage

public static java.awt.Image getImage(int[] pels,
                                      int w,
                                      int h)

testDctImage

public static void testDctImage(java.awt.Image image,
                                java.lang.String title)

testFftImage

public static javax.media.jai.RenderableOp testFftImage(java.awt.Image image,
                                                        java.lang.String title)

idftImage

public static javax.media.jai.RenderableOp idftImage(javax.media.jai.RenderedOp complexop,
                                                     javax.media.jai.operator.DFTScalingType scalingNone,
                                                     javax.media.jai.operator.DFTDataNature complexToReal)

inverseDFTImage

public static javax.media.jai.RenderableOp inverseDFTImage(javax.media.jai.RenderableOp image,
                                                           javax.media.jai.operator.DFTScalingType scalingType,
                                                           javax.media.jai.operator.DFTDataNature dataNature)

displayImage

public static void displayImage(java.awt.Image image,
                                java.lang.String title)
Display an image on the screen.

Parameters:
image -
title -

getImage

public static java.awt.Image getImage(short[][] r,
                                      short[][] g,
                                      short[][] b)

filterFFTR2

public static java.awt.Image filterFFTR2(java.awt.Image img1,
                                         java.awt.Image img2)
Use a radix 2 fft to filter img1 with img2. Both images must be integral powers of two and both must be of the same size. This is the bad filter! //todo get rid of this later.

Parameters:
img1 - original image
img2 - kernal image
Returns:
filtered image

getPels

public static int[] getPels(java.awt.Image image)

getPels

public static int[] getPels(java.awt.Image img,
                            int width,
                            int height)

pelsToShort

public static void pelsToShort(short[][] r,
                               short[][] g,
                               short[][] b,
                               int[] pels,
                               int width,
                               int height)

getGrayImage

public static java.awt.Image getGrayImage(short[][] g)
This image converts to gray and rotates and mirrors the image around. Do not use unless you know you need these extra features.

Parameters:
g -
Returns:
a grayscale image

writeHexImage

public static void writeHexImage(ImageBeanInterface ib)

getHexImage

public static java.lang.String getHexImage(ImageBeanInterface ib)

getImage

public static java.awt.Image getImage(short[][] g)

getTransposedImage

public static java.awt.Image getTransposedImage(short[][] g)
This method appears to transpose images

Parameters:
g - a wxh array of short
Returns:
an Image, possibly transposed.

getGreenFromImage

public static short[][] getGreenFromImage(java.awt.Image img,
                                          java.awt.image.ImageObserver io)

convolve

public static java.awt.image.BufferedImage convolve(java.awt.image.BufferedImage bi,
                                                    float[][] blurMatrix)

convolution

public static java.awt.Image convolution(java.awt.Image img,
                                         java.awt.image.Kernel k)
Convolve an image with a kernel using JAI.

Parameters:
img -
k -
Returns:
Image that has been filtered with k.

convolution

public static java.awt.Image convolution(java.awt.Image img,
                                         float[][] k)

print

public static void print(java.awt.Component c,
                         java.lang.String title)

print

public static void print(java.awt.Component c)

combineBands

public static java.awt.Image combineBands(float ar,
                                          float ag,
                                          float ab,
                                          java.awt.Image img)

getLinearCombineBandsProcessor

public static HppFilter3ImageProcessor getLinearCombineBandsProcessor(float ar,
                                                                      float ag,
                                                                      float ab)

sobel

public static java.awt.Image sobel(java.awt.Image img)

clip

public static void clip(short[][] a,
                        short min,
                        short max)

pasteBean

public static void pasteBean(ShortImageBean littleOne,
                             ShortImageBean bigOne,
                             int x1,
                             int y1)
pasteBean alters is bigOne argument

Parameters:
littleOne - a smaller image pasted into
bigOne - a bigger image
x1 - At this location

cutBean

public static ShortImageBean cutBean(ShortImageBean sib,
                                     int x1,
                                     int y1,
                                     int w,
                                     int h)

average

public static java.awt.Image average(java.awt.Image img1,
                                     java.awt.Image img2)
Compute the average image between img1 and img2.

Returns:
average image

average

public static java.awt.Image average(java.awt.Image[] ia)
Computer the average image from the image array, ia.

Returns:
average image.

getImageResource

public static java.awt.Image getImageResource(java.awt.Window w,
                                              java.lang.String iconFileName)

getImageResource

public static java.awt.Image getImageResource(java.lang.Object o,
                                              java.lang.String iconFileName)

fetchIcon

public static javax.swing.ImageIcon fetchIcon(java.awt.Window w,
                                              java.lang.String iconFileName)
Helper function to load an icon image from the JAR file of which this class is a part.


saveAsJpeg

public static void saveAsJpeg(java.awt.image.BufferedImage buf,
                              java.io.File f)

saveAsGif

public static void saveAsGif(java.awt.Image img,
                             java.io.File f)

gaussian

public static java.awt.Image gaussian(int kernelWidth,
                                      double sigma,
                                      java.awt.Image img)

negate

public static java.awt.Image negate(java.awt.Image img)

threshold

public static java.awt.Image threshold(java.awt.Image img,
                                       double b)
Use a b that ranges from 0 to 255.

Parameters:
img -
b -
Returns:
a binary image

enahe

public static java.awt.Image enahe(double alpha,
                                   java.awt.Image img)

getUnahe

public static java.awt.Image getUnahe(java.awt.Image img)

smooth

public static java.awt.Image smooth(int kernelWidth,
                                    double sigma,
                                    java.awt.Image image)

colorize

public static java.awt.Image colorize(double ar,
                                      double ag,
                                      double ab,
                                      java.awt.Image img)

getContrastBrightnessAdjustedImage

public static java.awt.Image getContrastBrightnessAdjustedImage(double c,
                                                                double b,
                                                                java.awt.Image img)

getImage

public static java.awt.Image getImage(java.io.File f)

testTiffReader

public static void testTiffReader()

getTiffImage

public static java.awt.Image getTiffImage(java.io.File f)

getShortImageZip

public static java.awt.Image getShortImageZip(java.io.File f)
                                       throws java.io.IOException,
                                              java.lang.ClassNotFoundException
Throws:
java.io.IOException
java.lang.ClassNotFoundException

getType

public static int getType(java.io.FileInputStream fis)

testSniff

public static void testSniff()

saveAsGif

public static void saveAsGif(java.awt.Image img,
                             java.lang.String fn)

captureWholeScreen

public static java.awt.image.BufferedImage captureWholeScreen()
                                                       throws java.awt.AWTException
Captures the entire screen

Returns:
SreenImage
Throws:
java.awt.AWTException

captureScreen

public static java.awt.image.BufferedImage captureScreen(java.awt.Component c)
                                                  throws java.awt.AWTException
Capture the screen using the component size and location for the image size and location.

Throws:
java.awt.AWTException

captureScreen

public static java.awt.image.BufferedImage captureScreen(java.awt.Rectangle inputRectangle)
                                                  throws java.awt.AWTException
Throws:
java.awt.AWTException

getFullScreen

public static java.awt.Rectangle getFullScreen()

getSNRinDb

public static double getSNRinDb(java.awt.Image in,
                                java.awt.Image out)

getScreenSize

public static java.awt.Dimension getScreenSize()

scaleFast

public static java.awt.image.BufferedImage scaleFast(java.awt.image.BufferedImage bi,
                                                     int width,
                                                     int height)
Fast scaling of a buffered image by using replicated pixels. Used the Image.scale method with a Image.SCALE_FAST for fastest possible result. If either the width or height is a negative number then a value is substituted to maintain the aspect ratio of the original image dimensions.


testScaleLayout

public static void testScaleLayout()

displayImage

public static void displayImage(javax.media.jai.RenderedOp renderedOp)

getRenderedImage

public static java.awt.image.RenderedImage getRenderedImage(java.awt.Image image)

scaleLayout

public static javax.media.jai.RenderedOp scaleLayout(java.awt.image.RenderedImage ri,
                                                     float sx,
                                                     float sy,
                                                     float tx,
                                                     float ty)

scaleSmooth

public static java.awt.image.BufferedImage scaleSmooth(java.awt.image.BufferedImage bi,
                                                       int width,
                                                       int height)
Uses the Image.scale method with a Image.SCALE_SMOOTH for a better result than SCALE_FAST. If either the width or height is a negative number then a value is substituted to maintain the aspect ratio of the original image dimensions.


scaleFast

public static java.awt.Image scaleFast(java.awt.Image img,
                                       int width,
                                       int height)
Uses the Image.SCALE_FAST rendering hint to make use of replicated pixels for creating the new image. No averaging here... If either the width or height is a negative number then a value is substituted to maintain the aspect ratio of the original image dimensions.


scaleSmooth

public static java.awt.Image scaleSmooth(java.awt.Image img,
                                         int width,
                                         int height)
Uses the Image.SCALE_SMOOTH rendering hint to make use of averaging. If either the width or height is a negative number then a value is substituted to maintain the aspect ratio of the original image dimensions.


scaleTranslate

public static javax.media.jai.RenderedOp scaleTranslate(java.awt.image.BufferedImage img,
                                                        float sfx,
                                                        float sfy,
                                                        float xTranslate,
                                                        float yTranslate)

getImageIoFormat

public static java.lang.String getImageIoFormat()

getImageIOFormatNames

public static java.lang.String[] getImageIOFormatNames()

saveAsTiff

public static void saveAsTiff(java.awt.image.BufferedImage bi,
                              java.io.File f)
                       throws java.io.IOException
The following code does not seem to work on a mac. I dont know why.

Throws:
java.io.IOException

grabAPngImage

public static byte[] grabAPngImage(java.awt.Rectangle rect)
                            throws java.awt.AWTException,
                                   java.io.IOException
grab a screen capture in png format.

Throws:
java.awt.AWTException
java.io.IOException

getBufferedImage

public static java.awt.image.BufferedImage getBufferedImage(java.lang.String s)

jpegEncode

public static java.awt.image.BufferedImage jpegEncode(java.awt.image.BufferedImage bi,
                                                      int xDensity,
                                                      int yDensity,
                                                      float quality)
                                               throws java.io.IOException
Throws:
java.io.IOException

captureScreen

public static java.awt.image.BufferedImage captureScreen(java.awt.Rectangle inputRectangle,
                                                         java.awt.Dimension outputDim)

getImage

public static java.awt.Image getImage(byte[][] r)

addImages

public static javax.media.jai.RenderedOp addImages(javax.media.jai.PlanarImage image1,
                                                   javax.media.jai.PlanarImage image2)

subtractImages

public static javax.media.jai.RenderedOp subtractImages(javax.media.jai.PlanarImage image1,
                                                        javax.media.jai.PlanarImage image2)

testEdgeTrackImages

public static void testEdgeTrackImages()

testSubstractImages

public static void testSubstractImages()

subtractImages

public static javax.media.jai.RenderedOp subtractImages(java.awt.Image image1,
                                                        java.awt.Image image2)

multiplyImages

public static javax.media.jai.RenderedOp multiplyImages(java.awt.Image image1,
                                                        java.awt.Image image2)

multiplyImages

public static javax.media.jai.RenderedOp multiplyImages(javax.media.jai.PlanarImage image1,
                                                        javax.media.jai.PlanarImage image2)

divideImages

public static javax.media.jai.RenderedOp divideImages(java.awt.Image image1,
                                                      java.awt.Image image2)

divideImages

public static javax.media.jai.RenderedOp divideImages(javax.media.jai.PlanarImage image1,
                                                      javax.media.jai.PlanarImage image2)

andImages

public static javax.media.jai.RenderedOp andImages(javax.media.jai.PlanarImage image1,
                                                   javax.media.jai.PlanarImage image2)

andImages

public static javax.media.jai.RenderedOp andImages(java.awt.Image image1,
                                                   java.awt.Image image2)

orImages

public static javax.media.jai.RenderedOp orImages(javax.media.jai.PlanarImage image1,
                                                  javax.media.jai.PlanarImage image2)

orImages

public static javax.media.jai.RenderedOp orImages(java.awt.Image image1,
                                                  java.awt.Image image2)

xorImages

public static javax.media.jai.RenderedOp xorImages(java.awt.Image image1,
                                                   java.awt.Image image2)

xorImages

public static javax.media.jai.RenderedOp xorImages(javax.media.jai.PlanarImage image1,
                                                   javax.media.jai.PlanarImage image2)

notImage

public static javax.media.jai.RenderedOp notImage(javax.media.jai.PlanarImage image1)

minImages

public static javax.media.jai.RenderedOp minImages(java.awt.Image image1,
                                                   java.awt.Image image2)

minImages

public static javax.media.jai.RenderedOp minImages(javax.media.jai.PlanarImage image1,
                                                   javax.media.jai.PlanarImage image2)

maxImages

public static javax.media.jai.RenderedOp maxImages(java.awt.Image image1,
                                                   java.awt.Image image2)

maxImages

public static javax.media.jai.RenderedOp maxImages(javax.media.jai.PlanarImage image1,
                                                   javax.media.jai.PlanarImage image2)

overlayImages

public static javax.media.jai.RenderedOp overlayImages(javax.media.jai.PlanarImage image1,
                                                       javax.media.jai.PlanarImage image2)

compositeImages

public static javax.media.jai.RenderedOp compositeImages(javax.media.jai.PlanarImage sourceImage1,
                                                         javax.media.jai.PlanarImage sourceImage2,
                                                         boolean alphaPremultiplied,
                                                         int destAlpha)

logImage

public static javax.media.jai.RenderedOp logImage(javax.media.jai.PlanarImage image)

expImage

public static javax.media.jai.RenderedOp expImage(javax.media.jai.PlanarImage image)

cropImage

public static javax.media.jai.RenderedOp cropImage(javax.media.jai.PlanarImage image,
                                                   java.awt.Rectangle rect)

cropImage

public static javax.media.jai.RenderedOp cropImage(java.awt.image.BufferedImage image,
                                                   java.awt.Rectangle rect)

cropImage

public static javax.media.jai.RenderedOp cropImage(javax.media.jai.PlanarImage image,
                                                   java.awt.geom.Rectangle2D rect)

boxFilterImage

public static javax.media.jai.RenderedOp boxFilterImage(javax.media.jai.PlanarImage image,
                                                        int wid,
                                                        int ht,
                                                        java.awt.Point pixelPos)

medianFilterImage

public static javax.media.jai.RenderedOp medianFilterImage(javax.media.jai.PlanarImage image,
                                                           int maskShape,
                                                           int maskSize)

displayPSD

public static void displayPSD(java.awt.Image img)

DFTImage

public static javax.media.jai.RenderedOp DFTImage(java.awt.Image img)

DFTImage

public static javax.media.jai.RenderedOp DFTImage(javax.media.jai.PlanarImage image,
                                                  javax.media.jai.operator.DFTScalingType scalingType,
                                                  javax.media.jai.operator.DFTDataNature dataNature)

DCTImage

public static javax.media.jai.RenderedOp DCTImage(javax.media.jai.PlanarImage image)

inverseDCTImage

public static javax.media.jai.RenderedOp inverseDCTImage(javax.media.jai.RenderedOp image)

magnitudeImage

public static javax.media.jai.RenderedOp magnitudeImage(javax.media.jai.RenderedOp image)

magnitudeSquaredImage

public static javax.media.jai.RenderedOp magnitudeSquaredImage(javax.media.jai.RenderedOp image)

phaseImage

public static javax.media.jai.RenderedOp phaseImage(javax.media.jai.RenderedOp image)

periodicShiftImage

public static javax.media.jai.RenderedOp periodicShiftImage(javax.media.jai.RenderedOp image,
                                                            int shiftX,
                                                            int shiftY)

getRenderable

public static javax.media.jai.RenderableOp getRenderable(javax.media.jai.PlanarImage image)
convert an image into a renderable image. The PlanarImage is a RenderedImage. The return is a RenderableImage.

Parameters:
image - RenderedImage
Returns:
a renderable version of the planar image.

polarToComplexImage

public static javax.media.jai.RenderedOp polarToComplexImage(javax.media.jai.RenderedOp mag,
                                                             javax.media.jai.RenderedOp phase)

DFTImage

public static javax.media.jai.RenderableOp DFTImage(javax.media.jai.RenderableOp image,
                                                    javax.media.jai.operator.DFTScalingType scalingType,
                                                    javax.media.jai.operator.DFTScalingType dataNature)

DCTImage

public static javax.media.jai.RenderableOp DCTImage(javax.media.jai.RenderableOp image)

InverseDCTImage

public static javax.media.jai.RenderableOp InverseDCTImage(javax.media.jai.RenderableOp image)

magnitudeImage

public static javax.media.jai.RenderableOp magnitudeImage(javax.media.jai.RenderableOp image)

magnitudeSquaredImage

public static javax.media.jai.RenderableOp magnitudeSquaredImage(javax.media.jai.RenderableOp image)

getPhaseImage

public static javax.media.jai.RenderableOp getPhaseImage(javax.media.jai.RenderableOp image)

getPeriodicShiftImage

public static javax.media.jai.RenderableOp getPeriodicShiftImage(javax.media.jai.RenderableOp image,
                                                                 int shiftX,
                                                                 int shiftY)

getSobelHorizontalImage

public static javax.media.jai.RenderedOp getSobelHorizontalImage(javax.media.jai.PlanarImage image)

getSobelVertImage

public static javax.media.jai.RenderedOp getSobelVertImage(javax.media.jai.PlanarImage image)

getSovelGradientMagnitudeImage

public static javax.media.jai.RenderedOp getSovelGradientMagnitudeImage(javax.media.jai.PlanarImage image)

getSharpenImage

public static javax.media.jai.RenderedOp getSharpenImage(javax.media.jai.PlanarImage image)

getBlurImage

public static javax.media.jai.RenderedOp getBlurImage(javax.media.jai.PlanarImage image)

getGrayImage

public static javax.media.jai.RenderedOp getGrayImage(javax.media.jai.PlanarImage image)

getGrayBandCombine

public static javax.media.jai.RenderedOp getGrayBandCombine(javax.media.jai.PlanarImage image)

getBandSelect

public static javax.media.jai.RenderedOp getBandSelect(javax.media.jai.PlanarImage image,
                                                       int bandNum)

getArgbToInt

public static int getArgbToInt(short alpha,
                               short red,
                               short green,
                               short blue)

getArgbToInt

public static int[] getArgbToInt(short[] alpha,
                                 short[] red,
                                 short[] green,
                                 short[] blue)

getArgbToInt

public static int[] getArgbToInt(short[] alpha,
                                 float[] red,
                                 float[] green,
                                 float[] blue)

getArgbToInt

public static int[] getArgbToInt(short[] alpha,
                                 double[] red,
                                 double[] green,
                                 double[] blue)

getAlpha

public static short getAlpha(int argb)

getRed

public static short[] getRed(int[] argb)

getGreen

public static short[] getGreen(int[] argb)

getBlue

public static short[] getBlue(int[] argb)

getAlpha

public static short[] getAlpha(int[] argb)

getMagnitudeImage

public static javax.media.jai.PlanarImage getMagnitudeImage(javax.media.jai.PlanarImage planarImage)

getCroppedImage

public javax.media.jai.PlanarImage getCroppedImage(javax.media.jai.PlanarImage image,
                                                   java.awt.Rectangle rect)

getConvolvedImage

public javax.media.jai.PlanarImage getConvolvedImage(javax.media.jai.PlanarImage image,
                                                     float[] kernelData,
                                                     int w,
                                                     int h)

saveAsPPM

public static void saveAsPPM(java.awt.Image img,
                             java.lang.String fn)

displayImageAwt

public static void displayImageAwt(javax.media.jai.PlanarImage image,
                                   java.lang.String title)

displayImage

public static void displayImage(javax.media.jai.PlanarImage image,
                                java.lang.String title)

getGrayImage

public static java.awt.Image getGrayImage(java.awt.Image image)

imagetoInt

public static int[] imagetoInt(short[] imageR,
                               short[] imageG,
                               short[] imageB,
                               int numPixels)

imagetoInt

public static int[] imagetoInt(float[] imageR,
                               float[] imageG,
                               float[] imageB)

imagetoInt

public static int[] imagetoInt(double[] imageR,
                               double[] imageG,
                               double[] imageB,
                               int numPixels)

getA

public static short getA(int valARGB)

putRGB

public static int putRGB(short r,
                         short g,
                         short b)

max

public static short max(short r,
                        short g,
                        short b)

min

public static short min(short r,
                        short g,
                        short b)

getRedArray

public static short[] getRedArray(int[] inputArray)

getGreenArray

public static short[] getGreenArray(int[] inputArray)

getBlueArray

public static short[] getBlueArray(int[] inputArray)

convolveJai

public static java.awt.Image convolveJai(java.awt.Image image,
                                         ImageMatrixBean imb)
Convolve an image using the ImageMatrixBean and the jai implementation of convolution. Grow the image according to the kernel growing policy and use the convolution kernel in the IMB to do the convolution. Then crop the output image to remove the JAI artifacts, as the edges.

Parameters:
image -
imb -
Returns:
image that has been convolved with the kernel in the imb.

convolveR2

public static java.awt.Image convolveR2(java.awt.Image image)
Convolve an image using the kernel in the ImageMatrixBean. Use a Radix2 algorithm. Truncate the image to an integral power of two. Grow the kernal, according to the kernal growing policy, to an image of the newly truncated image size. Perform the FFTR2 on both images. Multiply them together in the complex number plane. Perform the IFFT. Get the real-number plane off the IFFT image. Return it.

Parameters:
image - a real-valued input image to transform
Returns:
a filtered output image.

cropImageToIntegralPowerOfTwo

public static java.awt.Image cropImageToIntegralPowerOfTwo(java.awt.Image image)

cropImage

public static java.awt.Image cropImage(java.awt.Image image,
                                       java.awt.Rectangle r)
Crop an image to the size of the rectangle, r. The input image must be larger than the rectangle.

Parameters:
image - input larger than r.
r -
Returns:
cropped image.

viewDFT

public static javax.media.jai.TiledImage viewDFT(javax.media.jai.PlanarImage inputImg)

quadSwapTest

public static void quadSwapTest()

quadSwap

public static java.awt.Image quadSwap(java.awt.Image img)
Centers the image by translating the image to the center. This can be done via a phase shift in the frequency domain, but I think this is pretty fast (using JAI, etc.).
q1 q2 q3 q4 becomes: q4 q3 q2 q1 Does the quad swap

Parameters:
img -
Returns:
centered image.

complexConjugateTest

public static void complexConjugateTest()
This is the complex conjugate in the spatial domain, and frequency domain. Assuming real data.


complexConjugate

public static java.awt.Image complexConjugate(java.awt.Image img)

goodFFTR2Filter

public static java.awt.Image goodFFTR2Filter(java.awt.Image img1,
                                             java.awt.Image img2)

flipAndRotate

public static java.awt.Image flipAndRotate(java.awt.Image img)

upsideDownMirror

public static java.awt.Image upsideDownMirror(java.awt.Image img)

turn180

public static java.awt.Image turn180(java.awt.Image img)

testGetRandomColorImage

public static void testGetRandomColorImage()

testGetRandomGrayImage

public static void testGetRandomGrayImage()

getRandomColorImage

public static java.awt.Image getRandomColorImage(java.awt.Dimension size)

getRandomGrayImage

public static java.awt.Image getRandomGrayImage(java.awt.Dimension size)

subtractMean

public static java.awt.Image subtractMean(java.awt.Image img)

rotate180

public static java.awt.Image rotate180(java.awt.Image img)

square

public static java.awt.Image square(java.awt.Image img)

getImage

public static java.awt.Image getImage(java.net.URL url)

getBinaryTemplate

public static java.awt.Image getBinaryTemplate(java.awt.Image img)

testVariance

public static void testVariance()

getVariance

public static double getVariance(java.awt.Image scene)

getVarianceTimesN

public static double getVarianceTimesN(java.awt.Image scene)

getBufferedImage

public static java.awt.image.BufferedImage getBufferedImage(java.net.URL url)

cropImage

public static java.awt.Image cropImage(ShortImageBean sib,
                                       java.awt.Point min,
                                       java.awt.Point max)
Crop the image in the SIB to the size of min and max

Parameters:
sib - an input image that is left unaltered
min - the upper left corner
max - the lower right corner
Returns:
the cropped image

getBufferedImage

public static java.awt.image.BufferedImage getBufferedImage(java.io.File imageFile)

erode

public static javax.media.jai.PlanarImage erode(javax.media.jai.PlanarImage pi)

erode

public static javax.media.jai.PlanarImage erode(java.awt.image.BufferedImage img)

dilate

public static javax.media.jai.PlanarImage dilate(java.awt.image.BufferedImage img)

freiChen

public static void freiChen(ShortImageBean shortImageBean)

sizeDetector

public static void sizeDetector(ShortImageBean shortImageBean)

roberts2

public static void roberts2(ShortImageBean shortImageBean)

prewitt

public static void prewitt(ShortImageBean shortImageBean)

pixelDifference

public static void pixelDifference(ShortImageBean shortImageBean)

skeleton

public static java.awt.Image skeleton(java.awt.Image img)

medianFilterImage

public static java.awt.Image medianFilterImage(java.awt.Image image)

getMedian3by3CrossImage

public static java.awt.Image getMedian3by3CrossImage(java.awt.Image img)

getImage

public static java.awt.Image getImage(java.awt.image.RenderedImage img)

getBufferedImage

public static java.awt.image.BufferedImage getBufferedImage(java.awt.image.RenderedImage img)

saveAsGifAnimation

public static void saveAsGifAnimation(java.awt.image.BufferedImage[] img,
                                      int ms,
                                      boolean looped,
                                      java.io.File outputFile)

stripSuffix

public static java.lang.String stripSuffix(java.lang.String s)

printHexImage

public static void printHexImage(java.awt.Image img,
                                 java.lang.String title)

bias

public static float bias(float a,
                         float b)
Apply a bias to a number in the unit interval, moving numbers towards 0 or 1 according to the bias parameter.

Parameters:
a - the number to bias
b - the bias parameter. 0.5 means no change, smaller values bias towards 0, larger towards 1.
Returns:
the output value

gain

public static float gain(float a,
                         float b)
A variant of the gamma function.

Parameters:
a - the number to apply gain to
b - the gain parameter. 0.5 means no change, smaller values reduce gain, larger values increase gain.
Returns:
the output value

step

public static float step(float a,
                         float x)
The step function. Returns 0 below a threshold, 1 above.

Parameters:
a - the threshold position
x - the input parameter
Returns:
the output value - 0 or 1

pulse

public static float pulse(float a,
                          float b,
                          float x)
The pulse function. Returns 1 between two thresholds, 0 outside.

Parameters:
a - the lower threshold position
b - the upper threshold position
x - the input parameter
Returns:
the output value - 0 or 1

smoothPulse

public static float smoothPulse(float a1,
                                float a2,
                                float b1,
                                float b2,
                                float x)
A smoothed pulse function. A cubic function is used to smooth the step between two thresholds.

Parameters:
a1 - the lower threshold position for the start of the pulse
a2 - the upper threshold position for the start of the pulse
b1 - the lower threshold position for the end of the pulse
b2 - the upper threshold position for the end of the pulse
x - the input parameter
Returns:
the output value

smoothStep

public static float smoothStep(float a,
                               float b,
                               float x)
A smoothed step function. A cubic function is used to smooth the step between two thresholds.

Parameters:
a - the lower threshold position
b - the upper threshold position
x - the input parameter
Returns:
the output value

circleUp

public static float circleUp(float x)
A "circle up" function. Returns y on a unit circle given 1-x. Useful for forming bevels.

Parameters:
x - the input parameter in the range 0..1
Returns:
the output value

circleDown

public static float circleDown(float x)
A "circle down" function. Returns 1-y on a unit circle given x. Useful for forming bevels.

Parameters:
x - the input parameter in the range 0..1
Returns:
the output value

clamp

public static float clamp(float x,
                          float a,
                          float b)
Clamp a value to an interval.

Parameters:
a - the lower clamp threshold
b - the upper clamp threshold
x - the input parameter
Returns:
the clamped value

clamp

public static int clamp(int x,
                        int a,
                        int b)
Clamp a value to an interval.

Parameters:
a - the lower clamp threshold
b - the upper clamp threshold
x - the input parameter
Returns:
the clamped value

mod

public static double mod(double a,
                         double b)
Return a mod b. This differs from the % operator with respect to negative numbers.

Parameters:
a - the dividend
b - the divisor
Returns:
a mod b

mod

public static float mod(float a,
                        float b)
Return a mod b. This differs from the % operator with respect to negative numbers.

Parameters:
a - the dividend
b - the divisor
Returns:
a mod b

mod

public static int mod(int a,
                      int b)
Return a mod b. This differs from the % operator with respect to negative numbers.

Parameters:
a - the dividend
b - the divisor
Returns:
a mod b

triangle

public static float triangle(float x)
The triangle function. Returns a repeating triangle shape in the range 0..1 with wavelength 1.0

Parameters:
x - the input parameter
Returns:
the output value

lerp

public static float lerp(float t,
                         float a,
                         float b)
Linear interpolation.

Parameters:
t - the interpolation parameter
a - the lower interpolation range
b - the upper interpolation range
Returns:
the interpolated value

lerp

public static int lerp(float t,
                       int a,
                       int b)
Linear interpolation.

Parameters:
t - the interpolation parameter
a - the lower interpolation range
b - the upper interpolation range
Returns:
the interpolated value

mixColors

public static int mixColors(float t,
                            int rgb1,
                            int rgb2)
Linear interpolation of ARGB values.

Parameters:
t - the interpolation parameter
rgb1 - the lower interpolation range
rgb2 - the upper interpolation range
Returns:
the interpolated value

bilinearInterpolate

public static int bilinearInterpolate(float x,
                                      float y,
                                      int nw,
                                      int ne,
                                      int sw,
                                      int se)
Bilinear interpolation of ARGB values.

Parameters:
x - the X interpolation parameter 0..1
y - the y interpolation parameter 0..1 rgb array of four ARGB values in the order NW, NE, SW, SE
Returns:
the interpolated value

brightnessNTSC

public static int brightnessNTSC(int rgb)
Return the NTSC gray level of an RGB value. rgb the input pixel

Returns:
the gray level (0-255)

spline

public static float spline(float x,
                           int numKnots,
                           float[] knots)
Compute a Catmull-Rom spline.

Parameters:
x - the input parameter
numKnots - the number of knots in the spline
knots - the array of knots
Returns:
the spline value

spline

public static float spline(float x,
                           int numKnots,
                           int[] xknots,
                           int[] yknots)
Compute a Catmull-Rom spline, but with variable knot spacing.

Parameters:
x - the input parameter
numKnots - the number of knots in the spline
xknots - the array of knot x values
yknots - the array of knot y values
Returns:
the spline value

colorSpline

public static int colorSpline(float x,
                              int numKnots,
                              int[] knots)
Compute a Catmull-Rom spline for RGB values.

Parameters:
x - the input parameter
numKnots - the number of knots in the spline
knots - the array of knots
Returns:
the spline value

colorSpline

public static int colorSpline(int x,
                              int numKnots,
                              int[] xknots,
                              int[] yknots)
Compute a Catmull-Rom spline for RGB values, but with variable knot spacing.

Parameters:
x - the input parameter
numKnots - the number of knots in the spline
xknots - the array of knot x values
yknots - the array of knot y values
Returns:
the spline value

resample

public static void resample(int[] source,
                            int[] dest,
                            int length,
                            int offset,
                            int stride,
                            float[] out)
An implementation of Fant's resampling algorithm.

Parameters:
source - the source pixels
dest - the destination pixels
length - the length of the scanline to resample
offset - the start offset into the arrays
stride - the offset between pixels in consecutive rows
out - an array of output positions for each pixel

createImage

public static java.awt.image.BufferedImage createImage(java.awt.image.ImageProducer producer)

convertImageToARGB

public static java.awt.image.BufferedImage convertImageToARGB(java.awt.Image image)
Convert an Image into a TYPE_INT_ARGB BufferedImage. If the image is already of this type, the original image is returned unchanged.


cloneImage

public static java.awt.image.BufferedImage cloneImage(java.awt.image.BufferedImage image)

paintCheckedBackground

public static void paintCheckedBackground(java.awt.Component c,
                                          java.awt.Graphics g,
                                          int x,
                                          int y,
                                          int width,
                                          int height)

getSelectedBounds

public static java.awt.Rectangle getSelectedBounds(java.awt.image.BufferedImage p)

getRGB

public static int[] getRGB(java.awt.image.BufferedImage image,
                           int x,
                           int y,
                           int width,
                           int height,
                           int[] pixels)
A convenience method for getting ARGB pixels from an image. This tries to avoid the performance penalty of BufferedImage.getRGB unmanaging the image.


getSubimage

public static java.awt.image.BufferedImage getSubimage(java.awt.image.BufferedImage image,
                                                       int x,
                                                       int y,
                                                       int w,
                                                       int h)

composeThroughMask

public static void composeThroughMask(java.awt.image.Raster src,
                                      java.awt.image.WritableRaster dst,
                                      java.awt.image.Raster sel)
Compose src onto dst using the alpha of sel to interpolate between the two. I can't think of a way to do this using AlphaComposite.


setRGB

public static void setRGB(java.awt.image.BufferedImage image,
                          int x,
                          int y,
                          int width,
                          int height,
                          int[] pixels)
A convenience method for setting ARGB pixels in an image. This tries to avoid the performance penalty of BufferedImage.setRGB unmanaging the image.