我正在使用 JavaCv与 OpenCv 2.3来自 Java(在 Windows 上)。偶尔会出现问题,OpenCv 会抛出错误,例如:
OpenCV Error: Bad argument (unrecognized or unsupported array type) in unknown function, file ..\..\..\..\ocv\opencv\modules\core\src\array.cpp, line 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问题。
最佳答案
如果您使用 IplImage.create()
分配您的 IplImage
,则不应对其手动调用 cvReleaseImage()
。 <- 这很可能是错误的原因。要么调用 IplImage.release()
,要么让垃圾收集器在将来的某个时候为您释放它……
关于JavaCv/OpenCv 错误 : what does it mean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6977158/