Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cvSaveImage Crashes on jdk6 update 21 #16

Closed
GoogleCodeExporter opened this issue Feb 3, 2016 · 3 comments
Closed

cvSaveImage Crashes on jdk6 update 21 #16

GoogleCodeExporter opened this issue Feb 3, 2016 · 3 comments

Comments

@GoogleCodeExporter
Copy link

    public static void main(String[] args) {
        IplImage image = cvLoadImage("c:\\teste.jpg");
        if(image != null){
            System.out.println("OK");
            cvSmooth(image, image, CV_GAUSSIAN, 3, 0, 0, 0);
            cvSaveImage("c:\\testecv.jpg", image);

        }
    }

What is the expected output? What do you see instead?
Save the cvImage

What version of the product are you using? On what operating system?
the last version on winxp

Please provide any additional information below.

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x035f13e0, pid=4060, tid=3536
#
# JRE version: 6.0_21-b06
# Java VM: Java HotSpot(TM) Client VM (17.0-b16 mixed mode, sharing windows-x86 
)
# Problematic frame:
# C  [libhighgui200.dll+0xd13e0]

Original issue reported on code.google.com by brito.ju...@gmail.com on 24 Aug 2010 at 6:02

@GoogleCodeExporter
Copy link
Author

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

@GoogleCodeExporter
Copy link
Author

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

  • Changed state: Done

@GoogleCodeExporter
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant