[Book]
Main Page |Book|Search:
Difference (from prior major revision) (no other diffs)

Changed: 1,507c1,138



''' Let us introduce [Online Pharmacy] #1 on the web: [order VIAGRA online], [cialis]
Also [order phentermine online], [buy xanax], [diazepam online], [prozac online].


Buy [Cheap cigarettes] online!

Find your [new car] or [used car] online!

Best searches: [Health insurance quotes], [Individual health insurance], [Car insurance quotes], [Second mortgage loan]


Our [skin treatment] tips and [anti wrinkle cream]!
'''
*[camel cigarettes]
*[va loan]
*[blood glucose monitor]
*[blood glucose monitor]
*[blood glucose monitor]
*[blood glucose monitor]
*[paper shredder]
*[skin treatment]
*[skin disease]
*[skin treatment]
*[skin disease]
*[paper shredder]
*[club month]
*[blood glucose monitor]
*[blood glucose monitor]
*[blood glucose monitor]
*[cheap cigarettes]
*[Michigan attorney]
*[discount cigarettes]
*[marlboro cigarettes]
*[marlboro cigarettes]
*[cheap cigarettes]
*[buy cigarettes]
*[newport cigarettes]
*[camel cigarettes]
*[online cigarettes]
*[marlboro cigarettes]
*[discount cigarettes]
*[cheap cigarettes]
*[christmas gift idea]
*[christmas idea]
*[christmas gift basket]
*[christmas shopping]
*[christmas gift]
*[christmas present]
*[cheap cigarettes]
*[unique gift]
*[the man the gift]
*[gift idea]
*[corporate gift]
*[gift idea for man]
*[christmas gift]
*[business gift]
*[gift fruit]
*[food gift basket]
*[gift box]
*[corporate gift basket]
*[golf gift]
*[gift for man]
*[holiday gift]
*[gift bag]
*[promotional gift]
*[baby gift]
*[kool cigarettes]
*[free cigarettes]
*[cigarettes store]
*[newport cigarettes]
*[winston cigarettes]
*[online cigarettes]
*[marlboro cigarettes]
*[camel cigarettes]
*[discount cigarettes]
*[cheap cigarettes]
*[newport cigarette]
*[kool cigarette]
*[salem cigarette]
*[wholesale cigarette]
*[tax free cigarette]
*[parliament cigarettes]
*[cigarettes]
*[cigarettes]
*[tires]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarette prices]
*[cigarettes]
*[kool cigarette]
*[cigarette coupon]
*[parliament cigarettes]
*[newport cigarette]
*[cigarette smoking]
*[cigarette sale]
*[winston cigarette]
*[cigarette tobacco]
*[wholesale cigarette]
*[camel cigarette]
*[duty free cigarette]
*[cigarette discount]
*[marlboro cigarette]
*[cheap cigarette]
*[cigarettes]
*[attorney]
*[cigarettes]
*[prozac]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[prozac]
*[cigarette]
*[cigarettes]
*[cigarettes]
*[cigarettes]
*[didrex]
*[cigarettes]
*[xanax]
*[cigarette]
*[cigarettes]
*[cigarettes]
*[divorce uncontested]
*[divorce new york]
*[advice divorce]
*[divorce form]
*[divorce help]
*[carolina divorce north]
*[divorce florida]
*[camel cigarette]
*[online cigarette]
*[duty free cigarette]
*[cigarette discount]
*[marlboro cigarette]
*[cheap cigarette]
*[washington mutual mortgage]
*[california mortgage]
*[mortgage lead]
*[ameriquest mortgage]
*[lowest mortgage rate]
*[disney vacation]
*[colorado vacation]
*[california vacation]
*[package vacation]
*[italy vacation]
*[ski vacation]
*[alaska vacation]
*[resort vacation]
*[tropical vacation]
*[spa vacation]
*[disney vacation world]
*[florida vacation]
*[jamaica vacation]
*[cruise vacation]
*[golf vacation]
*[caribbean vacation]
*[tennessee vacation]
*[vacation vermont]
*[canada vacation]
*[arizona vacation]
*[cheap vacation]
*[carolina north vacation]
*[bahamas vacation]
*[beach vacation]
*[mexico vacation]
*[orlando vacation]
*[lake rental tahoe vacation]
*[home vacation]
*[vacation vegas]
*[hawaii vacation]
*[home equity loan rate]
*[fast loan]
*[car loan]
*[bad credit loan mortgage]
*[fast cash loan]
*[debt consolidation loan]
*[cash loan]
*[bad credit auto loan]
*[personal loan]
*[va home loan]
*[a home loan mortgage]
*[cash advance loan]
*[unsecured personal loan]
*[home improvement loan]
*[bad credit car loan]
*[bad credit loan]
*[bad credit loan]
*[payday loan online]
*[fha loan]
*[mortgage loan]
*[no faxing payday loan]
*[florida home loan]
*[consolidation loan]
*[countrywide home loan]
*[refinance loan]
*[va loan]
*[california home loan]
*[home equity loan]
*[e loan]
*[travel to mexico]
*[travel insurance]
*[student travel]
*[travel europe]
*[travel to hawaii]
*[caribbean travel]
*[travel deal]
*[budget travel]
*[discount travel]
*[travel site]
*[business travel]
*[world travel]
*[international travel]
*[travel agency]
*[travel reservation]
*[cheap travel]
*[last minute travel]
*[airline travel]
*[travel nursing]
*[italy travel]
*[cruise travel]
*[travel to costa rica]
*[travel agent]
*[cruise holiday]
*[star cruise]
*[galveston cruises]
*[celebrity cruise line]
*[new orleans cruises]
*[luxury cruise]
*[nile cruises]
*[disney cruise line]
*[carnival cruise line]
*[cruise review]
*[cruise package]
*[caribbean cruise line]
*[europe cruise]
*[bermuda cruise]
*[mexico cruise]
*[bahamas cruise]
*[family cruises]
*[holland america cruises]
*[disney cruise]
*[cruise vacation]
*[hawaii cruise]
*[cheap cruise]
*[new york cruises]
*[carnival cruise ship]
*[alaska cruise]
*[cruise special]
*[last minute cruise]
*[celebrity cruise]
*[cruise european]
*[honeymoon cruise]
*[discount cruises]
*[cruise ship]
*[cruise line]
*[norwegian cruise]
*[cruise princess]
*[cruise deal]
*[norwegian cruise line]
*[carnival cruise]
*[caribbean cruise]
*[cruise travel]
*[princess cruise line]
*[panama canal cruise]
*[mediterranean cruise]
*[radisson cruise]
*[costa cruises]
*[crystal cruise]
*[blood medication pressure]
*[blood omron pressure]
*[blood lower pressure]
*[career nursing]
*[blood monitor pressure]
*[blood diet high pressure]
*[degree nursing]
*[college nursing]
*[self employed health insurance]
*[auto insurance online]
*[affordable health insurance]
*[life insurance rate]
*[life insurance company]
*[cheap auto insurance]
*[life insurance policy]
*[term life insurance quote]
*[car insurance company]
*[life insurance quote]
*[health insurance plan]
*[mercury insurance]
*[homeowner insurance]
*[health insurance coverage]
*[auto insurance rate]
*[car insurance rate]
*[california auto insurance]
*[http://cigarettes1com.chat.ru/ ]
*[renters insurance]
*[online life insurance]
*[health insurance lead]
*[low cost health insurance]
*[health insurance quote]
*[california health insurance]
*[dallas attorney]
*[new york attorney]
*[illinois attorney]
*[florida attorney]
*[california attorney]
*[san diego attorney]
*[malpractice attorney]
*[personal injury attorney]
*[los angeles attorney]
*[san francisco attorney]
*[michigan attorney]
*[dui attorney]
*[cigarette discount]
*[california auto insurance]
*[renters insurance]
*[online life insurance]
*[low cost health insurance]
*[health insurance quote]
*[california health insurance]
*[kool cigarette]
*[salem cigarette]
*[newport cigarette]
*[cigarette sale]
*[wholesale cigarette]
*[camel cigarette]
*[cheap cigarette]
*[online cigarette]
*[buy cigarette]
*[cigarettes.com]
*[marlboro cigarette]
*[dui attorney]
*[send flower]
*[order flower]
*[flower arrangement]
*[flower and gift]
*[birthday flower]
*[flower shop]
*[1 800 flower]
*[flower delivery]
*[toyota tundra]
*[toyota sequoia]
*[toyota land cruiser]
*[toyota sienna]
*[toyota prius]
*[toyota dealership]
*[toyota dealerships]
*[mexico cruise]
*[new york cruises]
*[online cigarette]
*[buy cigarette]
*[marlboro cigarette]
*[camel cigarette]
*[discount cigarette]
*[travel to san francisco]
*[travel to alaska]
*[travel trailer]
*[travel package]
*[ireland travel]
*[first class travel]
*[student travel]
*[adventure travel]
*[online travel]
*[luxury travel]
*[vegas travel]
*[travel guide]
*[international travel]
*[tire plus]
*[motorcycle tire]
*[off road tire]
*[tire and wheel package]
*[yokohama tire]
*[tire dealer]
*[nitto tire]
*[discount tire]
*[car tire]
*[atv tire]
*[truck tire]
*[firestone tire]
*[trailer tire]
*[bf goodrich tire]
*[bridgestone tire]
*[goodyear tire]
*[tire wheels]
*[tire rim]
*[michelin tire]
*[tire rack]
*[last minute travel deal]
*[travel deal]
*[small business finance]
*[budget travel]
*[travel services]
*[small business marketing]
*[small business consultant]
*[small business tool]
*[travel site]
*[small business hosting]
*[small business loan grants]
*[travel hotel]
*[travel agency]
*[travel reservation]
*[caribbean travel]
*[small business owner]
*[small business web design]
*[small business development]
*[small business idea]
*[home based small business]
*[small home business]
*[small business accounting]
*[government grants for small business]
*[small business for sale]
*[small business credit]
*[small business plan]
*[small business grants]
*[small business start up]
*[small business credit card]
*[small business franchise]
*[small business startup]
*[last minute travel]
*[small business information]
*[small business opportunity]
*[small business resource]
*[web hosting small business]
*[travel agent]
*[italy travel]
*[small business web site]
*[airline travel]
*[small business solution]
*[microsoft office small business]
*[travel nursing]
*[small business software]
*[small business health insurance]
*[discount travel]
*[starting a small business]
*[travel to hawaii]
*[how to start a small business]
*[internet marketing for small business]
*[small business server]
*[small business services]
*[small business management]
*[callaway golf ball]
*[callaway golf bag]
*[callaway steelhead]
*[callaway golf club]
*[corelle callaway]
*[galveston cruises]
*[mediterranean cruise]
*[family cruises]
*[carnival cruise ship]
*[new orleans cruises]
*[italy cruise]
*[cruise review]
*[caribbean cruise line]
*[nile cruises]
*[disney cruise line]
*[hawaii cruise]
*[bahamas cruise]
*[bermuda cruise]
*[cruise package]
*[europe cruise]
*[travel to costa rica]
*[cruise european]
*[holland america cruises]
*[luxury cruise]
*[last minute cruise]
*[cruise special]
*[hawaiian cruises]
*[honeymoon cruise]
*[norwegian cruise line]
*[cruise line]
*[norwegian cruise]
*[carnival cruise line]
*[princess cruise line]
*[cruise deal]
*[real estate advertising]
*[costa cruises]
*[carnival cruise]
*[caribbean cruise]
*[scuba equipment]
*[heavy equipment]
*[home fitness equipment]
*[security equipment]
*[restaurant equipment]
*[playground equipment]
*[fitness equipment]
*[exercise equipment]
*[equipment leasing]
*[construction equipment]
*[surveillance equipment]
[Add to or Correct This Page]


Video Tracking in Java


Java lags behind C for speed of execution, so you may not think that it’s perfect for processor- intensive tasks like video tracking. However, faster machines and Jjust- in-t Time compilers allow you to get good video frame rates along with the portability, extensibility, networking capabilities, relative ease of use, and wide knowledge base of Java. In addition to the configuration that we talked about in the introduction of this section, you will need some additional Java classes to connect QuicktimeQuickTime to Java. The “QuickTime for Java” classes are an optional part of the QuicktimeQuickTime install so you may have to update or even go back to the installer to do a custom install with “QuickTime for Java” checked. In order to remove some of the complexities of the QuicktimeQuickTime for Java Cclasses, we are also using a package called vpb.jar (downloadable from http://stage.itp.tsoa.nyu.edu/~dano/vbp/). If you want to use the code below, you will have to put another file, “vpb.jar,” into your classpath. The same folder as your class should be part of your classpath. To be sure, you can put it in …/jre/lib/ext/ (PC) and /Library/Java/Extensions/ (Macintosh OSX).
When the code example below is working properly, you should see video in a window with a red red dot following the reddest thing in the picture. If you click on another color, the program with will try to chase follow that color. The main action of this code happens in the LookAtFrame method where there is a repeat loop that looks through all the rows of pixels, and then another repeat loop is nested within that to scan all the columns within a row. This quick and dirty program might do the trick for some applications. If you want to go a further once you get the pixels, we recommend the books Digital Image Processing Digital Image Processing: A Practical Introduction Using Java by Nick Efford (Addison-Wesley, 2000) or Machine Vision Algorithms in Java Machine Vision Algorithms in Java: Techniques and Implementation by Paul F. Whelan and Derek Molloy (Springer Verlag, 2000).


import java.awt.*;
import java.util.*;
import java.awt.event.*;
import java.awt.image.*;

public class PickNTrack extends Frame {
static int kWidth ; //The overall size of your video
static int kHeight ;
static long elapsedTime; //For evaluating performace
static long now;
static int x = 0; //these are the x and y position of the dot you are drawing
static int y = 0;
static int redGoal = 210; //these describe the color you are chasing
static int greenGoal = 20; //255, 255, 255 would be white
static int blueGoal = 20;
static PixelSource ps; //this object from vbp.jar gives you access to video pixels
static ImageWrangler iw; //this object from vbp.jar converst from arrays to images
static PickNTrack myWindow;
static Image myImage; // An image for displaying the video frame
static boolean scanning = true;

PickNTrack() { //this is like startmovie
kWidth =320;
kHeight =240;
}
public static void main(String args[]) { //always the first method called
myWindow = new PickNTrack();
myWindow.setSize(kWidth,kHeight);
myWindow.show();
myWindow.toFront();
myWindow.setLayout (null);

//These are the two objects that you are using out of vpb.jar
ps = new PixelSource(kWidth,kHeight);
iw = new ImageWrangler(ps.vidWidth,kHeight,ps.getMasks());

//add a listener for shutting the window, give it a method to call (thisWindowClosing)
myWindow.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
myWindow.thisWindowClosing(e);
}
});
//add a listener for clicking the mouse in the window, give it a method to call (MouseClicked)
myWindow.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
myWindow.MouseClicked(e);
}
});
//add a listener for pressing a key , give it a method to call (KeyPressed)
myWindow.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent e) {
myWindow.KeyPressed(e);
}
});

/////////This is the main loop///////
while (scanning) //you may want to farm this out to a thread
{
LookAtAFrame(); //we look through all the pixels
myWindow.repaint(); // we paint the winner
}

}
static void LookAtAFrame() { //this is where the action is, where we go pixel by pixel through the video
int[] rgb;
int worldRecord = 60000; //some huge number
ps.grabFrame(); //grab a frame
for (int row = 0; row < kHeight; row++) {
//REPEAT FOR EACH ROW OF PIXELS
for (int column = 0; column < kWidth; column++){
//REPEAT FOR EACH PIXEL IN THE ROW
rgb = ps.getPixel(column,row);
int diff = Math.abs(rgb[0] - redGoal) +Math.abs(rgb[2]-blueGoal) + Math.abs(rgb[1 ] - greenGoal);
if (diff < worldRecord) {
//if the difference is smallest for this pixel
x = column; //remember this position
y = row;
worldRecord = diff ;
//reset the record
}
}//END FOR EACH PIXEL IN A ROW
}//END FOR EACH ROW OF PIXELS
try {Thread.sleep(1);} catch(InterruptedException e) {}
myImage = iw.imageFromArray(ps.getPixelArray()); //make a picture
elapsedTime = System.currentTimeMillis()-now; //for checking performance
now = System.currentTimeMillis();
} // end of lookat frame

public void update(Graphics g){ //avoid flicker, don't clear the screen
paint(g);
}
public void paint(Graphics g) { //this is where we paint
if (myImage != null){
g.drawImage(myImage,0,0,this);//the background video
g.setColor(Color.black);//black
g.fillOval( x-5,y-5,10,10);//the dot for tracking
g.setColor(new Color(redGoal, greenGoal, blueGoal));//black
g.fillOval( x-4,y-4,8,8);//the dot for tracking
}
}
public boolean MouseClicked(java.awt.event.MouseEvent evt){
//this repicks the color you are chasing
int[] rgb;
int x = evt.getX();
int y = evt.getY();
rgb = ps.getPixel(x,y);
redGoal = rgb[0];
greenGoal =rgb[1];
blueGoal = rgb[2];
System.out.println ("clicked x" + x + " y" + y + " R" + redGoal + " G" + greenGoal + " B" + blueGoal);
return(true);
}
public boolean KeyPressed(java.awt.event.KeyEvent e){ //pop up dialog
String whichKey =e.getKeyText(e.getKeyCode());
if (whichKey.equals("S")) { //press “s” to get video settings
ps.videoSettings();
}else if (whichKey.equals("T")) { //press “t” to see performance
System.out.println ("Time: " + elapsedTime + " ms/frame ");
}
return(true);
}
void thisWindowClosing(java.awt.event.WindowEvent e) {
scanning = false;
System.out.println ("quit");
dispose();
ps.killSession();
System.exit(5);
}
}


[Add to or Correct This Page]

Video Tracking in Java

Java lags behind C for speed of execution, so you may not think that it’s perfect for processor- intensive tasks like video tracking. However, faster machines and Jjust- in-t Time compilers allow you to get good video frame rates along with the portability, extensibility, networking capabilities, relative ease of use, and wide knowledge base of Java. In addition to the configuration that we talked about in the introduction of this section, you will need some additional Java classes to connect QuicktimeQuickTime to Java. The “QuickTime for Java” classes are an optional part of the QuicktimeQuickTime install so you may have to update or even go back to the installer to do a custom install with “QuickTime for Java” checked. In order to remove some of the complexities of the QuicktimeQuickTime for Java Cclasses, we are also using a package called vpb.jar (downloadable from http://stage.itp.tsoa.nyu.edu/~dano/vbp/). If you want to use the code below, you will have to put another file, “vpb.jar,” into your classpath. The same folder as your class should be part of your classpath. To be sure, you can put it in …/jre/lib/ext/ (PC) and /Library/Java/Extensions/ (Macintosh OSX). When the code example below is working properly, you should see video in a window with a red red dot following the reddest thing in the picture. If you click on another color, the program with will try to chase follow that color. The main action of this code happens in the LookAtFrame method where there is a repeat loop that looks through all the rows of pixels, and then another repeat loop is nested within that to scan all the columns within a row. This quick and dirty program might do the trick for some applications. If you want to go a further once you get the pixels, we recommend the books Digital Image Processing Digital Image Processing: A Practical Introduction Using Java by Nick Efford (Addison-Wesley, 2000) or Machine Vision Algorithms in Java Machine Vision Algorithms in Java: Techniques and Implementation by Paul F. Whelan and Derek Molloy (Springer Verlag, 2000).

import java.awt.*;
import java.util.*;
import java.awt.event.*;
import java.awt.image.*;

public class PickNTrack extends Frame {
	static int kWidth ; //The overall size of your video
	static int kHeight ;
	static long elapsedTime; //For evaluating performace
	static long now;
	static int x = 0; //these are the x and y position of the dot you are drawing
	static int y = 0;
	static int redGoal = 210; //these describe the color you are chasing
	static int greenGoal = 20; //255, 255, 255 would be white
	static int blueGoal = 20;
	static PixelSource ps; //this object from vbp.jar gives you access to video pixels
	static ImageWrangler iw; //this object from vbp.jar converst from arrays to images
	static PickNTrack myWindow;
	static Image myImage; // An image for displaying the video frame
 	static boolean scanning = true;

	PickNTrack() { //this is like startmovie
		kWidth =320;
		kHeight =240;
	}
	 public static void main(String args[]) { //always the first method called
 		myWindow = new PickNTrack();
 		myWindow.setSize(kWidth,kHeight);
		myWindow.show();
		myWindow.toFront();
		myWindow.setLayout (null);

		//These are the two objects that you are using out of vpb.jar
		ps = new PixelSource(kWidth,kHeight);
		iw = new ImageWrangler(ps.vidWidth,kHeight,ps.getMasks());

		//add a listener for shutting the window, give it a method to call (thisWindowClosing)
		myWindow.addWindowListener(new java.awt.event.WindowAdapter() {
			public void windowClosing(java.awt.event.WindowEvent e) {
				myWindow.thisWindowClosing(e);
			}
		});
		//add a listener for clicking the mouse in the window, give it a method to call (MouseClicked)
		myWindow.addMouseListener(new java.awt.event.MouseAdapter() {
			public void mouseClicked(java.awt.event.MouseEvent e) {
				myWindow.MouseClicked(e);
			}
		});
		//add a listener for pressing a key , give it a method to call (KeyPressed)
		myWindow.addKeyListener(new java.awt.event.KeyAdapter() {
			public void keyPressed(java.awt.event.KeyEvent e) {
				myWindow.KeyPressed(e);
			}
		});

		/////////This is the main loop///////
		while (scanning) //you may want to farm this out to a thread
			{
			 LookAtAFrame(); //we look through all the pixels
			 myWindow.repaint(); // we paint the winner
			}

	}
	static void LookAtAFrame() { //this is where the action is, where we go pixel by pixel through the video
 		int[] rgb;
 		int worldRecord = 60000; //some huge number
	 	ps.grabFrame(); //grab a frame
		for (int row = 0; row < kHeight; row++) {
//REPEAT FOR EACH ROW OF PIXELS
			for (int column = 0; column < kWidth; column++){
//REPEAT FOR EACH PIXEL IN THE ROW
				rgb = ps.getPixel(column,row);
				int diff = Math.abs(rgb[0] - redGoal) +Math.abs(rgb[2]-blueGoal) + Math.abs(rgb[1 ] - greenGoal);
					if (diff < worldRecord) {
						//if the difference is smallest for this pixel
						x = column; //remember this position
						y = row;
						worldRecord = diff ;
						//reset the record
					}
			}//END FOR EACH PIXEL IN A ROW
		}//END FOR EACH ROW OF PIXELS
		try {Thread.sleep(1);} catch(InterruptedException e) {}
		myImage = iw.imageFromArray(ps.getPixelArray()); //make a picture
		elapsedTime = System.currentTimeMillis()-now; //for checking performance
		now = System.currentTimeMillis();
	}	 // end of lookat frame

	public void update(Graphics g){ //avoid flicker, don't clear the screen
		paint(g);
	}
	public void paint(Graphics g) { //this is where we paint
		if (myImage != null){
			g.drawImage(myImage,0,0,this);//the background video
			g.setColor(Color.black);//black
			g.fillOval( x-5,y-5,10,10);//the dot for tracking
			g.setColor(new Color(redGoal, greenGoal, blueGoal));//black
			g.fillOval( x-4,y-4,8,8);//the dot for tracking
		}
 	}
 	public boolean MouseClicked(java.awt.event.MouseEvent evt){
		//this repicks the color you are chasing
 		int[] rgb;
 		int x = evt.getX();
 		int y = evt.getY();
 		rgb = ps.getPixel(x,y);
 		redGoal = rgb[0];
		greenGoal =rgb[1];
		blueGoal = rgb[2];
 		System.out.println ("clicked x" + x + " y" + y + " R" + redGoal + " G" + greenGoal + " B" + blueGoal);
 		return(true);
 	}
	public boolean KeyPressed(java.awt.event.KeyEvent e){ //pop up dialog
		String whichKey =e.getKeyText(e.getKeyCode());
		if (whichKey.equals("S")) { //press “s” to get video settings
			ps.videoSettings();
		}else if (whichKey.equals("T")) { //press “t” to see performance
			System.out.println ("Time: " + elapsedTime + " ms/frame ");
		}
		return(true);
	}
 	 void thisWindowClosing(java.awt.event.WindowEvent e) {
 		scanning = false;
 		System.out.println ("quit");
		dispose();
		ps.killSession();
		System.exit(5);
	}
}