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 java.awt.Toolkit tk
           
static float TWO_PI
           
static int UNSELECTED
           
static java.net.URL webCamUrl
           
 
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.BufferedImage average(java.awt.image.BufferedImage[] images)
           
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 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 java.awt.Image concatenateImages(java.awt.Image img1, java.awt.Image img2)
           
static java.awt.Image concatenateImages(java.awt.Image img1, java.awt.Image img2, 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, float[][] k, java.awt.image.ImageObserver io)
           
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 copy(java.awt.Image displayedImage, java.awt.Rectangle marqeeRectangle)
           
static void correlationTest()
           
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 cropImageToIntegralPowerOfTwo(java.awt.Image image)
           
static java.awt.Image cut(java.awt.Image displayedImage, java.awt.Rectangle marqeeRectangle)
           
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 displayImageResize(java.awt.Image 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)
          Not a very fast approach
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 java.awt.Image getAverageImageFromCamera()
          take two frames from the web camera and average them.
static javax.media.jai.RenderedOp getBandSelect(javax.media.jai.PlanarImage image, int bandNum)
           
static java.awt.image.BufferedImage getBase64String2JpegImage(java.lang.String s)
          use jpeg to base 64 encode an image
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.awt.Component c)
           
static java.awt.image.BufferedImage getBufferedImage(java.io.File imageFile)
          Get a bufferedImage from a file
static java.awt.image.BufferedImage getBufferedImage(java.awt.Image img)
           
static java.awt.image.BufferedImage getBufferedImage(ImageBeanInterface ib)
           
static java.awt.image.BufferedImage getBufferedImage(int w, int h)
           
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.Point getCentroid(java.awt.Image ar)
           
static java.awt.Color getColor(java.awt.Image image, java.awt.Point p)
           
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 double[] getDoubles(java.awt.image.BufferedImage image)
          Convert an image into a 1D array of doubles.
static java.awt.Rectangle getFullScreen()
           
static java.awt.Image getGifJpgPngImage(java.io.File f)
           
static java.awt.Image getGifOrJpg(java.io.File imageFile)
           
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 javax.media.jai.RenderedOp getGrayImageOp(javax.media.jai.PlanarImage image)
          This does a linear matrix multiply for combining red, green and blue.
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.awt.image.BufferedImage getGreyBufferedImage(java.awt.Image img)
           
static java.lang.String getHexImage(ImageBeanInterface ib)
           
static HppFilter3Interface getHppFilter3(java.awt.image.RGBImageFilter f)
          Adapter design pattern
static java.awt.Image getImage()
          Prompt the user for an image using a standard file open dialog box.
static java.awt.Image getImage(java.awt.image.BufferedImage bi)
           
static java.awt.Image getImage(byte[] b)
           
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(float[][] r, float[][] g, float[][] b)
           
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(int width, int height)
           
static java.awt.Image getImage(javax.media.jai.PlanarImage pi)
           
static java.awt.image.BufferedImage getImage(java.awt.Rectangle rect)
           
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(javax.media.jai.TiledImage ti)
           
static java.awt.Image getImage(java.net.URL url)
           
static java.lang.String getImage2JpegString(java.awt.Image img)
          use jpeg to base 64 encode an image
static java.lang.String getImage2TiffString(java.awt.image.BufferedImage img)
           
static ImageBean getImageBean(java.awt.image.BufferedImage bi)
           
static java.awt.Image getImageFromBytes(java.net.URL url)
           
static java.awt.Image getImageFromStream(java.io.InputStream is)
           
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 java.awt.Image getInteractiveEqualizedImage(java.awt.Image img, double[] cmfR, double[] cmfG, double[] cmfB)
           
static byte[] getJpgBytes(java.awt.image.BufferedImage image)
          Turns a BufferedImage into a jpg and then into an array of bytes, which can be useful for generating rtf.
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 int[] getPelsOld(java.awt.Image image)
           
static int[] getPelsOld(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 javax.media.jai.PlanarImage[] getPlanarImages(java.awt.Image img1, java.awt.Image img2)
           
static byte[] getPngImageBytes(java.awt.Image image)
           
static java.awt.Polygon getPolygon(java.awt.Image image)
          returns a polygon that outlines the image in clockwise order.
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 java.awt.Image getRed2DiffGreyFilter(java.awt.Image image)
           
static java.awt.Image getRed2GrayImage(java.awt.Image image)
           
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 RunMenuItem getRunMenuItem(Main main, java.lang.String label, RunAnnotationEditor editor)
           
static javax.media.jai.RenderedOp getScaledImage(java.awt.image.RenderedImage ri, float sx, float sy, float tx, float ty)
           
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 java.awt.Dimension getSize(java.awt.Image img)
           
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.BufferedImage getWholeScreen()
          Captures the entire screen
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 java.awt.Image growTile(java.awt.Image img, int growX, int growY)
           
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 void listOperations()
          List all the operations in jai.
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 java.awt.Image pels2Image(int[] pels, int w, int h)
           
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 javax.media.jai.RenderedOp polarToComplexImage(javax.media.jai.RenderedOp mag, javax.media.jai.RenderedOp phase)
           
static void print(java.lang.Object[] o)
           
static void printBinaryImage(java.awt.Image img, java.lang.String title)
           
static void printData(java.awt.Image baseImage)
           
static void printHexImage(java.awt.Image img, java.lang.String title)
           
static void printIcon(ShortImageBean sib)
           
static void printImageReaderFormats()
           
static void printImageWriterFormats()
           
static void printIOMimeTypes()
           
static void processAndDisplayImage(ImageProcessorInterface sif)
           
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 java.awt.image.BufferedImage readAsJpeg(java.io.InputStream inputStream)
          Read the image from the input stream as a jpeg image
static int readByte(java.io.InputStream in)
           
static char readChar(java.io.InputStream in)
           
static int readInt(java.io.InputStream in)
           
static char readNonwhiteChar(java.io.InputStream in)
           
static ShortImageBean readPpm(java.io.File fn)
           
static void resample(int[] source, int[] dest, int length, int offset, int stride, float[] out)
          An implementation of Fant's resampling algorithm.
static java.awt.Image rob1(java.awt.Image img)
           
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 saveAsGif(ShortImageBean shortImageBean)
           
static void saveAsGif(ShortImageBean shortImageBean, java.lang.String fn)
           
static void saveAsGifAnimation(java.awt.image.BufferedImage[] img, int ms, boolean looped, java.io.File outputFile)
           
static void saveAsHexImage(ShortImageBean shortImageBean)
           
static void saveAsJava(ShortImageBean shortImageBean)
           
static void saveAsJava(ShortImageBean sib, java.io.PrintWriter pw)
           
static void saveAsJava(ShortImageBean shortImageBean, java.lang.String fn)
           
static void saveAsJpeg(java.awt.image.BufferedImage buf, java.io.File f)
           
static void saveAsJpeg(java.awt.image.BufferedImage bi, java.io.File f, float quality)
          The buffered image, bi is saved to the file, f.
static void saveAsJpeg(java.awt.Image img, java.io.File f)
           
static void saveAsJpeg(java.awt.Image img, java.io.File f, float quality)
          The buffered image, bi is saved to the file, f.
static void saveAsJpeg(java.awt.Image img, java.io.OutputStream out)
          Write the image to the output stream as a jpeg image
static void saveAsPPM(java.awt.Image img, java.io.File f)
           
static void saveAsPPM(java.awt.Image img, java.lang.String fn)
           
static void saveAsPPM(ShortImageBean shortImageBean)
           
static void saveAsPPM(ShortImageBean shortImageBean, java.lang.String fn)
           
static void saveAsPPMgz(java.awt.Image img)
           
static void saveAsPPMgz(java.awt.Image img, java.lang.String fn)
           
static void saveAsPPMgz(ShortImageBean sib)
           
static void saveAsPPMgz(ShortImageBean shortImageBean, java.lang.String fn)
           
static void saveAsPPMJar(java.awt.Image img, java.io.File f)
           
static void saveAsShortgz(ShortImageBean shortImageBean)
           
static void saveAsShortgz(java.lang.String fn, ShortImageBean sib)
           
static void saveAsShortZip(ShortImageBean shortImageBean)
           
static void saveAsShortZip(java.lang.String fn, ShortImageBean sib)
           
static void saveAsShortZip2(java.lang.String fn, ShortImageBean sib)
           
static void saveAsTiff(java.awt.image.BufferedImage bi, java.io.File f)
          The following code does not seem to work on a mac.
static void saveAsxyz(java.io.PrintWriter pw, ShortImageBean sib)
           
static void saveAsxyz(ShortImageBean shortImageBean)
           
static void saveAsxyz(ShortImageBean shortImageBean, java.lang.String fn)
           
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 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 java.awt.Image setOverlay(java.awt.Image imageForRGB, java.awt.Image imageForOverlay)
           
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 showDialog(ImageProcessorInterface ip, ImageProcessListener ipl)
           
static void showDialog(ImageProcessorInterface ip, Main ipl)
           
static void sizeDetector(ShortImageBean shortImageBean, int numberOfPixelsInA3by3Matrix)
           
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 testConvolution()
           
static void testDctImage(java.awt.Image image, java.lang.String title)
           
static void testEdgeTrackImages()
           
static void testErodeDilateImage()
           
static javax.media.jai.RenderableOp testFftImage(java.awt.Image image, java.lang.String title)
           
static void testGetGrayBufferedImage()
           
static void testGetImage()
           
static void testGetRandomColorImage()
           
static void testGetRandomGrayImage()
           
static void testGrowTile()
           
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 java.awt.image.BufferedImage toBufferedImage(java.awt.Component comp)
          Draws a given component into a buffered image and returns that image.
static int[] toPels(java.awt.Image img)
           
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 writeArray(short[][] a, java.io.DataOutputStream dos, ShortImageBean sib)
           
static void writeHeader(java.io.DataOutputStream dos, ShortImageBean sib)
           
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)
           
static java.awt.Image zero20PelsAfterFirstNonzeroPel(java.awt.Image img)
           
static java.awt.Image zoom(java.awt.Image displayedImage, java.awt.Rectangle marqeeRectangle)
           
 
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

tk

public static java.awt.Toolkit tk

webCamUrl

public static java.net.URL webCamUrl
Method Detail

testErodeDilateImage

public static void testErodeDilateImage()

listOperations

public static void listOperations()
List all the operations in jai.
  • JPEG DCT TIFF Null ColorQuantizer AWTImage Or And Extrema ErrorDiffusion Min DFT MultiplyComplex PNM Convolve PolarToComplex BandCombine Encode Format SubsampleBinaryToGray MedianFilter Renderable Conjugate Pattern Divide MinFilter AddCollection BoxFilter FilteredSubsample Histogram Affine Mean URL PNG OrConst Erode UnsharpMask ImageFunction MultiplyConst Threshold Rescale Clamp Mosaic MatchCDF Max Stream FileLoad Magnitude Absolute MaxFilter BandSelect Exp AndConst SubtractConst Overlay ColorConvert BMP XorConst Not Dilate AddConstToCollection Warp Scale OrderedDither AddConst Composite Piecewise BandMerge Rotate FPX Border Binarize DivideIntoConst SubsampleAverage Constant Subtract FileStore Phase Invert Add IIPResolution DivideComplex IIP Multiply Shear Crop DivideByConst IDCT Transpose PeriodicShift Lookup MagnitudeSquared IDFT GIF Xor SubtractFromConst Log Translate GradientMagnitude

  • 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)

    concatenateImages

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

    concatenateImages

    public static java.awt.Image concatenateImages(java.awt.Image img1,
                                                   java.awt.Image img2,
                                                   java.awt.Dimension celldim,
                                                   int cols,
                                                   int rows)

    getPlanarImages

    public static javax.media.jai.PlanarImage[] getPlanarImages(java.awt.Image img1,
                                                                java.awt.Image img2)

    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)

    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)

    correlationTest

    public static void correlationTest()

    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()
    Prompt the user for an image using a standard file open dialog box.

    Returns:
    an instance of an AWT 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)

    testGetGrayBufferedImage

    public static void testGetGrayBufferedImage()

    getGreyBufferedImage

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

    getBufferedImage

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

    getBufferedImage

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

    getBufferedImage

    public static java.awt.image.BufferedImage getBufferedImage(int w,
                                                                int h)

    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 -

    displayImageResize

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

    getImage

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

    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

    getPelsOld

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

    getPels

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

    getPels

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

    getPelsOld

    public static int[] getPelsOld(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)

    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
    y1 - 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.BufferedImage average(java.awt.image.BufferedImage[] images)

    average

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

    Parameters:
    ia - image array
    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 bi,
                                  java.io.File f,
                                  float quality)
    The buffered image, bi is saved to the file, f.

    Parameters:
    bi - knput buffered image
    f - output file
    quality - 0 is bad, 1.0 is good.

    saveAsJpeg

    public static void saveAsJpeg(java.awt.Image img,
                                  java.io.File f,
                                  float quality)
    The buffered image, bi is saved to the file, f.

    Parameters:
    img - input image
    f - output file
    quality - 0 is bad, 1.0 is good.

    saveAsJpeg

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

    getImage2JpegString

    public static java.lang.String getImage2JpegString(java.awt.Image img)
    use jpeg to base 64 encode an image

    Parameters:
    img - image to be converted into jpeg string
    Returns:
    base 64 string

    getImage2TiffString

    public static java.lang.String getImage2TiffString(java.awt.image.BufferedImage img)

    saveAsJpeg

    public static void saveAsJpeg(java.awt.Image img,
                                  java.io.OutputStream out)
    Write the image to the output stream as a jpeg image

    Parameters:
    img - the image
    out - output stream

    getBase64String2JpegImage

    public static java.awt.image.BufferedImage getBase64String2JpegImage(java.lang.String s)
    use jpeg to base 64 encode an image

    Parameters:
    s - the string to convert
    Returns:
    base 64 string

    readAsJpeg

    public static java.awt.image.BufferedImage readAsJpeg(java.io.InputStream inputStream)
    Read the image from the input stream as a jpeg image

    Parameters:
    inputStream - output stream
    Returns:
    buffered Image

    saveAsJpeg

    public static void saveAsJpeg(java.awt.Image img,
                                  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)

    getInteractiveEqualizedImage

    public static java.awt.Image getInteractiveEqualizedImage(java.awt.Image img,
                                                              double[] cmfR,
                                                              double[] cmfG,
                                                              double[] cmfB)

    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)

    getWholeScreen

    public static java.awt.image.BufferedImage getWholeScreen()
                                                       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)

    getScaledImage

    public static javax.media.jai.RenderedOp getScaledImage(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.

    Parameters:
    bi - bufferedImage used for input
    width - the new width of the image
    height - the new height of the image

    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.

    Parameters:
    img - the image to be scaled
    width - the new width of the image
    height - the new height of the image

    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.

    Parameters:
    bi -
    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)

    getGrayImageOp

    public static javax.media.jai.RenderedOp getGrayImageOp(javax.media.jai.PlanarImage image)
    This does a linear matrix multiply for combining red, green and blue.

    Parameters:
    image - the planar image to combine
    Returns:
    new 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)

    getRed2DiffGreyFilter

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

    getRed2GrayImage

    public static java.awt.Image getRed2GrayImage(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 - the image to be convolved
    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 - rectangular region of interest
    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 - an image use for input, not damaged
    Returns:
    new 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)
    Not a very fast approach

    Parameters:
    img - input image to be rotated and flipped
    Returns:
    a new image

    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)

    getImageFromBytes

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

    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)

    getBufferedImage

    public static java.awt.image.BufferedImage getBufferedImage(java.io.File imageFile)
    Get a bufferedImage from a file

    Parameters:
    imageFile - a file, read as AWT image and convert
    Returns:
    return a buffered image read into memory.

    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)

    sizeDetector

    public static void sizeDetector(ShortImageBean shortImageBean,
                                    int numberOfPixelsInA3by3Matrix)

    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)

    printBinaryImage

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

    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.


    getImage

    public static java.awt.Image getImage(int width,
                                          int height)

    pels2Image

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

    toPels

    public static int[] toPels(java.awt.Image img)

    getBufferedImage

    public static java.awt.image.BufferedImage getBufferedImage(java.awt.Component c)

    processAndDisplayImage

    public static void processAndDisplayImage(ImageProcessorInterface sif)

    getRunMenuItem

    public static RunMenuItem getRunMenuItem(Main main,
                                             java.lang.String label,
                                             RunAnnotationEditor editor)

    zero20PelsAfterFirstNonzeroPel

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

    convolution

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

    testGrowTile

    public static void testGrowTile()

    growTile

    public static java.awt.Image growTile(java.awt.Image img,
                                          int growX,
                                          int growY)

    testConvolution

    public static void testConvolution()

    getImage

    public static java.awt.image.BufferedImage getImage(java.awt.Rectangle rect)
                                                 throws java.awt.AWTException
    Throws:
    java.awt.AWTException

    getJpgBytes

    public static byte[] getJpgBytes(java.awt.image.BufferedImage image)
                              throws java.io.IOException
    Turns a BufferedImage into a jpg and then into an array of bytes, which can be useful for generating rtf.

    Parameters:
    image - - a buffered image
    Returns:
    byte[] array of bytes containing the image
    Throws:
    java.io.IOException - uses the ImageIO package

    printIOMimeTypes

    public static void printIOMimeTypes()

    toBufferedImage

    public static java.awt.image.BufferedImage toBufferedImage(java.awt.Component comp)
    Draws a given component into a buffered image and returns that image. Can be used to copy to images of components to the clipboard

    Parameters:
    comp - grab an image from a component
    Returns:
    BufferedImage

    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
    scaley - scale about transx and transy
    shearx - shear about transx and transy
    sheary - shear about transx and transy
    transx - point about which xform is performed
    transy - point about which xform is performed
    radians - rotation
    bi - bufferedImage used for input
    Returns:
    transformed image.

    getSize

    public static java.awt.Dimension getSize(java.awt.Image img)

    getDoubles

    public static double[] getDoubles(java.awt.image.BufferedImage image)
    Convert an image into a 1D array of doubles. Just use this for gray scale images.

    Parameters:
    image -
    Returns:
    a 64 bit double array

    readPpm

    public static ShortImageBean readPpm(java.io.File fn)
                                  throws java.io.IOException
    Throws:
    java.io.IOException

    readInt

    public static int readInt(java.io.InputStream in)
                       throws java.io.IOException
    Throws:
    java.io.IOException

    readByte

    public static int readByte(java.io.InputStream in)
                        throws java.io.IOException
    Throws:
    java.io.IOException

    readNonwhiteChar

    public static char readNonwhiteChar(java.io.InputStream in)
                                 throws java.io.IOException
    Throws:
    java.io.IOException

    readChar

    public static char readChar(java.io.InputStream in)
                         throws java.io.IOException
    Throws:
    java.io.IOException

    saveAsShortZip

    public static void saveAsShortZip(java.lang.String fn,
                                      ShortImageBean sib)

    writeArray

    public static void writeArray(short[][] a,
                                  java.io.DataOutputStream dos,
                                  ShortImageBean sib)
                           throws java.io.IOException
    Throws:
    java.io.IOException

    writeHeader

    public static void writeHeader(java.io.DataOutputStream dos,
                                   ShortImageBean sib)
                            throws java.io.IOException
    Throws:
    java.io.IOException

    saveAsShortZip2

    public static void saveAsShortZip2(java.lang.String fn,
                                       ShortImageBean sib)

    saveAsShortgz

    public static void saveAsShortgz(java.lang.String fn,
                                     ShortImageBean sib)

    saveAsxyz

    public static void saveAsxyz(java.io.PrintWriter pw,
                                 ShortImageBean sib)

    saveAsJava

    public static void saveAsJava(ShortImageBean sib,
                                  java.io.PrintWriter pw)

    printIcon

    public static void printIcon(ShortImageBean sib)

    saveAsJava

    public static void saveAsJava(ShortImageBean shortImageBean,
                                  java.lang.String fn)

    saveAsxyz

    public static void saveAsxyz(ShortImageBean shortImageBean,
                                 java.lang.String fn)

    saveAsHexImage

    public static void saveAsHexImage(ShortImageBean shortImageBean)

    saveAsPPM

    public static void saveAsPPM(ShortImageBean shortImageBean)

    saveAsPPM

    public static void saveAsPPM(ShortImageBean shortImageBean,
                                 java.lang.String fn)

    saveAsPPMgz

    public static void saveAsPPMgz(ShortImageBean shortImageBean,
                                   java.lang.String fn)

    saveAsPPMgz

    public static void saveAsPPMgz(ShortImageBean sib)

    saveAsShortZip

    public static void saveAsShortZip(ShortImageBean shortImageBean)

    saveAsShortgz

    public static void saveAsShortgz(ShortImageBean shortImageBean)

    saveAsGif

    public static void saveAsGif(ShortImageBean shortImageBean)

    saveAsGif

    public static void saveAsGif(ShortImageBean shortImageBean,
                                 java.lang.String fn)

    saveAsJava

    public static void saveAsJava(ShortImageBean shortImageBean)

    saveAsxyz

    public static void saveAsxyz(ShortImageBean shortImageBean)

    printData

    public static void printData(java.awt.Image baseImage)

    getAverageImageFromCamera

    public static java.awt.Image getAverageImageFromCamera()
    take two frames from the web camera and average them.

    Returns:
    an average image

    skeleton

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

    rob1

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

    getCentroid

    public static java.awt.Point getCentroid(java.awt.Image ar)

    showDialog

    public static void showDialog(ImageProcessorInterface ip,
                                  ImageProcessListener ipl)

    showDialog

    public static void showDialog(ImageProcessorInterface ip,
                                  Main ipl)

    getImage

    public static java.awt.Image getImage(byte[] b)
                                   throws java.io.IOException
    Throws:
    java.io.IOException

    getImageFromStream

    public static java.awt.Image getImageFromStream(java.io.InputStream is)
                                             throws java.io.IOException
    Throws:
    java.io.IOException

    getPngImageBytes

    public static byte[] getPngImageBytes(java.awt.Image image)
                                   throws java.io.IOException
    Throws:
    java.io.IOException

    getColor

    public static java.awt.Color getColor(java.awt.Image image,
                                          java.awt.Point p)

    zoom

    public static java.awt.Image zoom(java.awt.Image displayedImage,
                                      java.awt.Rectangle marqeeRectangle)

    cut

    public static java.awt.Image cut(java.awt.Image displayedImage,
                                     java.awt.Rectangle marqeeRectangle)

    copy

    public static java.awt.Image copy(java.awt.Image displayedImage,
                                      java.awt.Rectangle marqeeRectangle)

    getPolygon

    public static java.awt.Polygon getPolygon(java.awt.Image image)
    returns a polygon that outlines the image in clockwise order.

    Parameters:
    image -
    Returns:
    new instance of a Polygon

    setOverlay

    public static java.awt.Image setOverlay(java.awt.Image imageForRGB,
                                            java.awt.Image imageForOverlay)

    main

    public static void main(java.lang.String[] args)
                     throws java.io.IOException
    Throws:
    java.io.IOException