brew install opencv3 -with-contrib -with-java
如果我通过Java使用VideoCapture从我的网络摄像头捕获摄像机,它总是会崩溃Java进程。它可以成功读取帧,但释放视频捕获崩溃。
public static main(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
VideoCapture capture = new VideoCapture();
capture.open(0);
Mat mat = new Mat();
capture.read(mat);
mat.release();
capture.release();
}
之后会显示以下内容:
A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007fffaddef49f, pid=7415, tid=0x0000000000000307
#
# JRE version: Java(TM) SE Runtime Environment (8.0_101-b13) (build 1.8.0_101-b13)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.101-b13 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# C [libobjc.A.dylib+0x949f] objc_release+0x1f
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
我发现类似的问题被报告为#7833中的错误,但是解决方案显示我的OpenCV版本已经修复了(要求我在模块中注释行[mCaptureDevice release];
的 cap_avfoundation_mac.mm )。
在#7514中报告了另一个,但我的问题与他的不同之处在于,一旦我在代码中评论capture.open(0)
,一切正常。
我无法弄清问题是什么。知道问题是什么吗?