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