我正在使用来自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问题。
答案 0 :(得分:2)
如果您使用IplImage
分配IplImage.create()
,则不应手动调用cvReleaseImage()
。 &lt; - 这很可能是错误的原因。要么调用IplImage.release()
,要么让垃圾收集器在将来的某个时候为你解除分配...