我一直在编写动作检测程序,目前出现错误(内存不足)。
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等)。
感谢。