Search code examples
javaopencvjavacv

JavaCV - Can't manipulate camera resolution


I worte the code below to save a picture. But whatever I set for ImageWidth and ImageHeight, this has no effect on the resolution. The resolution is always 640x480. I'm using a Microsoft Life Cam Cinema, which supports 720p.

    FrameGrabber grabber = new VideoInputFrameGrabber(1);
    try{
        grabber.start();
    } catch (FrameGrabber.Exception e) {
        System.out.println("Exception grabber start");
    }
    grabber.setImageHeight(720);
    grabber.setImageWidth(1280);
    grabber.setGamma(25);
    double gamma = grabber.getGamma();
    int camHeight= grabber.getImageHeight();
    int camWidth= grabber.getImageWidth();
    IplImage img = null;
    Frame frame = null;
    try{
        frame = grabber.grabFrame();

    } catch (FrameGrabber.Exception e){
        System.out.println("Exception grabbing frame");
    }
    OpenCVFrameConverter.ToIplImage converter = new OpenCVFrameConverter.ToIplImage();      
    img = converter.convert(frame);
    cvSaveImage("img.jpg", img);

Solution

  • grabber.setImageHeight(720);and grabber.setImageWidth(1280); have to be beforegrabber.start();