cv:OutOfMemoryError Java IplImage

时间:2014-03-17 01:09:45

标签: java opencv memory javacv iplimage

我一直在编写动作检测程序,目前出现错误(内存不足)。

java.lang.OutOfMemoryError

OpenCV错误:cv :: OutOfMemoryError中的内存不足(无法分配836352字节),文件........ \ opencv \ modules \ core \ src \ alloc.cpp,第52行 java.lang.RuntimeException:........ \ opencv \ modules \ core \ src \ alloc.cpp:52:错误:( - 4)无法在函数cv :: OutOfMemoryError中分配836352个字节

at com.googlecode.javacv.cpp.opencv_core.cvCreateImage(Native Method)
at cv.MotionDetectionUtil.resizeIplImage(MotionDetectionUtil.java:170)
at cv.MotionDetectionUtil.grabFrame(MotionDetectionUtil.java:87)
at applet.Panel$2.run(Panel.java:153)
at java.lang.Thread.run(Thread.java:744)

以上是我得到的错误。他们指的是以下地点。

首先是这一个。参考createImage行。

 private IplImage resizeIplImage(IplImage img, double percent) {
    double width = ((double) img.width() * percent) / 100;
    double height = ((double) img.height() * percent) / 100;

    IplImage dest_img;

    dest_img = opencv_core.cvCreateImage(
            opencv_core.cvSize((int) width, (int) height), img.depth(),
            img.nChannels());

    //resize the image
    opencv_imgproc.cvResize(img, dest_img, opencv_imgproc.CV_INTER_CUBIC);

    return dest_img;
}

然后是第二行:

 if (REDUCE_TO_PERCENT > 0 && REDUCE_TO_PERCENT != 100) {
        lastImage = resizeIplImage(img, REDUCE_TO_PERCENT);
    } else {
        lastImage = img;
    }

最后这一行......

//update the image
                    img = detector.grabFrame(brightness, contrast);
                    image = img;
                    CameraPanel.updateImage(image);

我无法为我的生活解决这个问题,有人能告诉我(详细)我做错了什么吗? (理想情况下是某种例子)。我是java的新手(尤其是opencv等)。

感谢。

0 个答案:

没有答案