JavaCv / OpenCv错误:这是什么意思?

时间:2011-08-08 02:05:17

标签: java c++ opencv runtime-error

我正在使用来自Java的JavaCv OpenCv 2.3(在Windows上)。偶尔会出现问题,OpenCv会抛出错误,例如:

  

OpenCV错误:未知函数中的错误参数(无法识别或不支持的数组类型),文件.. \ .. \ .. \ .. \ ocv \ opencv \ modules \ core \ src \ array.cpp,第995行

使用以下Java堆栈跟踪:

at com.googlecode.javacv.cpp.opencv_core.cvReleaseImage(Native Method)
at com.googlecode.javacv.cpp.opencv_core$IplImage$ReleaseDeallocator.deallocate(opencv_core.java:492)
at com.googlecode.javacpp.Pointer$DeallocatorReference.clear(Pointer.java:127)
at com.googlecode.javacpp.Pointer.deallocator(Pointer.java:171)
at com.googlecode.javacpp.Pointer.init(Pointer.java:61)
at com.googlecode.javacv.cpp.opencv_core$CvSize.allocate(Native Method)
at com.googlecode.javacv.cpp.opencv_core$CvSize.<init>(opencv_core.java:2152)
at com.googlecode.javacv.cpp.opencv_core.cvSize(opencv_core.java:2170)

即。当我尝试释放图像时会发生这种情况。由于我对C ++和OpenCv内部的了解不多,我想我会问这里。

错误消息是什么意思?在发布IplImage时是否有任何可能导致其发生的事情?


Meta:之前的问题也是关于捕获/跳过Microsoft Visual C ++运行时错误对话框的问题。但是,我意识到我问了两个完全不同的问题,并将该部分迁移到this问题。

1 个答案:

答案 0 :(得分:2)

如果您使用IplImage分配IplImage.create(),则不应手动调用cvReleaseImage()。 &lt; - 这很可能是错误的原因。要么调用IplImage.release(),要么让垃圾收集器在将来的某个时候为你解除分配...