www.pudn.com > img_process_java.zip > Connect.java
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import java.awt.event.*;
import java.util.*;
import java.lang.Math;
import java.awt.Frame;
import javax.media.jai.*;
import javax.media.jai.JAI;
import java.io.IOException;
import java.lang.reflect.Array;
import java.awt.image.ColorModel;
import javax.media.jai.iterator.*;
import java.awt.image.renderable.ParameterBlock;
import com.sun.media.jai.codec.FileSeekableStream;
import javax.media.jai.widget.*;
import javax.media.jai.widget.ImageCanvas;
import java.awt.geom.*;
public class Connect
{
static int data1[][]; //original shape image
static int data2[][]; //processed shape image
static public int Xdim, Ydim, Xdim_copy, Ydim_copy;
Vector coordinates;
Vector copy_coord = new Vector();
Vector recCoordinates; //Fourier reconstructed shape coordinates
int perimeter;
int perimeter_copy;
static Image image;
String filename;
FileOutputStream stream;
//Usage: java AffineShape
//e.g. java AffineShape shapeindex\shape\*.* | circle.jpg
public static void main(String[] args)
{
for (int n = 0; n < args.length; n++)
{
getImageData(args[n]);
thresholding(args[n]);
}
System.exit(0);
}
//display image of default format--.gif and .jpg
static void getImageData(String filename)
{
int pixels[];//to hold real pixel values;
PixelGrabber grabber = null;
PlanarImage planarImage = JAI.create("fileload", filename);
image = planarImage.getAsBufferedImage(); //planar image to awt image
Xdim = planarImage.getWidth();
Ydim = planarImage.getHeight();
pixels = new int[Xdim*Ydim];
data1 = new int[Ydim+10][Xdim+10]; //two dim buffer for processing convenience in shape
for(int y=0; y 200) //thresholding
//data1[y][x] = 0; //for black object with gray background
data1[y][x] = 255; //for black object with white background
else
//data1[y][x] = 255; //for black object with gray background
data1[y][x] = 0; //for black objcet with white background
//get rid of isolated noise points
for(y=0; y