Closed GoogleCodeExporter closed 9 years ago
Since you are running a 32-bit x86 implementation of Java, have you tried to
recompile OpenCV without SSE instructions as indicated in the README.txt file?
Original comment by samuel.a...@gmail.com
on 25 Aug 2010 at 12:44
Closing this long-standing issue, assuming that recompiling OpenCV without SSE
instructions did the trick. Please reopen the issue if that is not the case,
thank you.
Original comment by samuel.a...@gmail.com
on 4 Nov 2010 at 10:35
Hi I am trying to use JavaCv to detect faces and then wanted to store those
faces in jpg format. I got success in face detection using readme file with
javacv. but while saving I faced problems. Following is the code ... I tried to
use cvSave but it do not store it in correct format.Please guide where i am
wrong . Thank you in advance
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package facedetect;
/**
*
* @author User
*/
import com.googlecode.javacpp.Loader;
import com.googlecode.javacv.*;
import com.googlecode.javacv.cpp.*;
import java.awt.Image;
import java.nio.Buffer;
import static com.googlecode.javacv.cpp.opencv_core.*;
import static com.googlecode.javacv.cpp.opencv_imgproc.*;
import static com.googlecode.javacv.cpp.opencv_calib3d.*;
import static com.googlecode.javacv.cpp.opencv_objdetect.*;
public class Demo {
public Buffer buf = null;
public static void main(String[] args) throws Exception {
String classifierName = "C:\\haarclass\\haarcascade_frontalface_alt.xml";
// Preload the opencv_objdetect module to work around a known bug.
Loader.load(opencv_objdetect.class);
CvHaarClassifierCascade classifier = new CvHaarClassifierCascade(cvLoad("C:\\haarclass\\haarcascade_frontalface_alt.xml"));
if (classifier.isNull()) {
System.err.println("Error loading classifier file \"" + classifierName + "\".");
System.exit(1);
}
CanvasFrame frame = new CanvasFrame("Face Detection");
FrameGrabber grabber = new OpenCVFrameGrabber(0);
grabber.start();
IplImage grabbedImage = grabber.grab();
int width = grabbedImage.width();
int height = grabbedImage.height();
IplImage grayImage = IplImage.create(width, height, IPL_DEPTH_8U, 1);
CvMemStorage storage = CvMemStorage.create();
CvPoint hatPoints = new CvPoint(3);
int counter=0;
while (frame.isVisible() && (grabbedImage = grabber.grab()) != null && counter==0)
{
cvCvtColor(grabbedImage, grayImage, CV_BGR2GRAY);
CvSeq faces = cvHaarDetectObjects(grayImage, classifier, storage,
1.1, 3, CV_HAAR_DO_CANNY_PRUNING);
int total = faces.total();
for (int i = 0; i < total; i++)
{
CvRect r = new CvRect(cvGetSeqElem(faces, i));
int x = r.x(), y = r.y(), w = r.width(), h = r.height();
cvRectangle(grabbedImage, cvPoint(x, y), cvPoint(x+w, y+h), CvScalar.RED, 1, CV_AA, 0);
cvRectangle(grabbedImage, cvPoint(x, y), cvPoint(x+w, y+h), CvScalar.BLUE, 1, CV_AA, 0);
// To access the elements of a native array, use the `position()` method
hatPoints.position(0).x(x-w/10); hatPoints.y(y-h/10);
hatPoints.position(1).x(x+w*11/10); hatPoints.y(y-h/10);
hatPoints.position(2).x(x+w/2); hatPoints.y(y-h/2);
cvFillConvexPoly(grabbedImage, hatPoints.position(0), 3, CvScalar.GREEN, CV_AA, 0);
}
//cvSave("D:\\img1.bmp", grabbedImage);
// cvSaveImage("D:\\PhotoGallery.jpg", grabbedImage);
counter=1;
cvThreshold(grayImage, grayImage, 64, 255, CV_THRESH_BINARY);
frame.showImage(grabbedImage);
cvClearMemStorage(storage);
}
grabber.stop();
frame.dispose();
}
}
Original comment by gauravsa...@gmail.com
on 15 Mar 2011 at 5:07
Original issue reported on code.google.com by
brito.ju...@gmail.com
on 24 Aug 2010 at 6:02