【问题标题】:OpenCV Frame Grabber not work on MacOS CatalinaOpenCV Frame Grabber 在 MacOS Catalina 上不起作用
【发布时间】:2020-07-21 14:35:22
【问题描述】:

短版:

当我在 macOS Catalina 终端中输入此命令时:

java -jar test-1.0-SNAPSHOT.jar

得到结果:

Start App
zsh: abort         java -jar test-1.0-SNAPSHOT.jar

更多详情:

我在应用程序中的主要功能是基于网络摄像头捕获,我要求该应用程序在 Windows 10、Linux 和 MacOS 上运行。这就是为什么我决定选择 JavaCV 来处理网络摄像头捕获。在 windows 和 linux 上一切正常。但是,它在 MacOS 上无法正常工作。为了在 Mac 上测试应用程序,我使用了 virtual box 6.1 和 macOS Catalina 10.15.5。在项目中,我也在使用 gradle 和 kotlin。

我还检查了我是否可以从虚拟机访问摄像头,并且摄像头在系统应用程序中是否正常工作。我怀疑应用程序由于相机权限而无法运行。

我还要补充一点,macOS Catalina 是最新的

基本代码

build.gradle:

plugins {
    id 'java'
    id 'org.jetbrains.kotlin.jvm' version '1.3.72'
    id 'application'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    testCompile group: 'junit', name: 'junit', version: '4.12'

    compile group: 'org.bytedeco', name: 'javacv-platform', version: '1.5.3'
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

jar {
    manifest {
        attributes "Main-Class": "App"
    }
    from {
        configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }

    exclude('META-INF/*.SF')
    exclude('META-INF/*.DSA')
    exclude('META-INF/*.RSA')
    exclude('module-info.class')
}
mainClassName = 'App'

App.kt

import org.bytedeco.javacv.OpenCVFrameGrabber

class App {
    companion object {
        @JvmStatic
        fun main(args: Array<String>) {
            println("Start App")
            val grabber: OpenCVFrameGrabber = OpenCVFrameGrabber(0);
            grabber.start()
        }
    }
}

为了创建可执行的 jar 文件,我在 mac 终端中输入:

sudo 
./gradlew clean build

【问题讨论】:

    标签: java macos opencv kotlin javacv


    【解决方案1】:

    我解决了我的问题。 macOS 的问题是应用程序在启动之前应该要求访问相机。 macOS 不将 Jar 文件视为应用程序。 More info here。例如,当您通过 IDE 运行应用程序时,系统会要求您访问摄像头。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-03
      • 1970-01-01
      • 2021-04-21
      • 2020-04-10
      • 1970-01-01
      • 2020-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多