使用网络摄像头的OpenCV VideoCapture无法在MacOS上发布

时间:2017-05-04 08:54:02

标签: java eclipse opencv

系统信息

  • OpenCV:3.2.0
  • 操作系统:MacOS Sierra 10.12.4 x86_64
  • 编译器:Eclipse Mars Release(4.5.0)
  • 使用Homebrew构建:
    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),一切正常。

我无法弄清问题是什么。知道问题是什么吗?

0 个答案:

没有答案