Getting problem in Java OpenCV code.
- by Chetan
I had successfully compile my java code in Eclipse with name FaceDetection.java...
I am getting an Exception in thread "main" java.lang.NoSuchMethodError: main....
Please help me to remove this Exception..
Here is the code
import java.awt.;
import java.awt.event.;
import java.awt.image.MemoryImageSource;
import hypermedia.video.OpenCV;
@SuppressWarnings("serial")
public class FaceDetection extends Frame implements Runnable
{
/**
* Main method.
* @param String[] a list of user's arguments passed from the console to this program
*/
public static void main( String[] args )
{
System.out.println( "\nOpenCV face detection sample\n" );
new FaceDetection();
}
// program execution frame rate (millisecond)
final int FRAME_RATE = 1000/30;
OpenCV cv = null; // OpenCV Object
Thread t = null; // the sample thread
// the input video stream image
Image frame = null;
// list of all face detected area
Rectangle[] squares = new Rectangle[0];
/**
* Setup Frame and Object(s).
*/
FaceDetection() {
super( "Face Detection Sample" );
// OpenCV setup
cv = new OpenCV();
cv.capture( 320, 240 );
cv.cascade( OpenCV.CASCADE_FRONTALFACE_ALT );
// frame setup
this.setBounds( 100, 100, cv.width, cv.height );
this.setBackground( Color.BLACK );
this.setVisible( true );
this.addKeyListener(
new KeyAdapter() {
public void keyReleased( KeyEvent e ) {
if ( e.getKeyCode()==KeyEvent.VK_ESCAPE ) { // ESC : release OpenCV resources
cv.dispose();
System.exit(0);
}
}
}
);
// start running program
t = new Thread( this );
t.start();
}
/**
* Draw video frame and each detected faces area.
*/
public void paint( Graphics g ) {
// draw image
g.drawImage( frame, 0, 0, null );
// draw squares
g.setColor( Color.RED );
for( Rectangle rect : squares )
g.drawRect( rect.x, rect.y, rect.width, rect.height );
}
/**
* Execute this sample.
*/
@SuppressWarnings("static-access")
public void run() {
while( t!=null && cv!=null ) {
try {
t.sleep( FRAME_RATE );
// grab image from video stream
cv.read();
// create a new image from cv pixels data
MemoryImageSource mis = new MemoryImageSource( cv.width, cv.height, cv.pixels(), 0, cv.width );
frame = createImage( mis );
// detect faces
squares = cv.detect( 1.2f, 2, OpenCV.HAAR_DO_CANNY_PRUNING, 20, 20 );
// of course, repaint
repaint();
}
catch( InterruptedException e ) {;}
}
}
}