Java 处理4错误:警告:gab.opencv.opencv非法反射访问

Java 处理4错误:警告:gab.opencv.opencv非法反射访问,java,opencv,processing,face-recognition,Java,Opencv,Processing,Face Recognition,我正在尝试使用OpenCV在带有Catalina的MAC上处理4。 但是,我得到以下错误: WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by gab.opencv.OpenCV (file:/Users/mmemmo/Documents/Processing/libraries/opencv_processing/library/opencv_pro

我正在尝试使用OpenCV在带有Catalina的MAC上处理4。 但是,我得到以下错误:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by gab.opencv.OpenCV (file:/Users/mmemmo/Documents/Processing/libraries/opencv_processing/library/opencv_processing.jar) to field java.lang.ClassLoader.sys_paths
当我运行此代码时

import gab.opencv.*;
import processing.video.*;
import java.awt.*;

Capture video;
OpenCV opencv;

void setup() {
  size(640, 480);
  video = new Capture(this, 640/2, 480/2);
  opencv = new OpenCV(this, 640/2, 480/2);
  //CASCADE_EYE
  opencv.loadCascade(OpenCV.CASCADE_FRONTALFACE);  
 // opencv.loadCascade(OpenCV.CASCADE_EYE);  

  video.start();
}

void draw() {
  scale(2);
  opencv.loadImage(video);

  image(video, 0, 0 );

  noFill();
  stroke(0, 255, 0);
  strokeWeight(3);
  Rectangle[] faces = opencv.detect();
  println(faces.length);

  for (int i = 0; i < faces.length; i++) {
    println(faces[i].x + "," + faces[i].y);
    rect(faces[i].x, faces[i].y, faces[i].width, faces[i].height);
  }
  
  if(faces.length > 0 ){
    println("Hello Human");enter code here
  }
}

void captureEvent(Capture c) {
  c.read();
}
导入gab.opencv.*;
导入处理。视频。*;
导入java.awt.*;
捕获视频;
OpenCV-OpenCV;
无效设置(){
尺寸(640480);
视频=新捕获(这是640/2480/2);
opencv=新的opencv(这是640/2480/2);
//瀑布眼
opencv.loadCascade(opencv.CASCADE\u FRONTALFACE);
//opencv.loadCascade(opencv.CASCADE_眼);
video.start();
}
作废提款(){
量表(2);
opencv.loadImage(视频);
图像(视频,0,0);
noFill();
笔划(0,255,0);
冲程重量(3);
矩形[]面=opencv.detect();
println(面长度);
对于(int i=0;i0){
println(“Hello Human”);在此处输入代码
}
}
无效捕获事件(捕获c){
c、 read();
}
我知道处理卡塔琳娜的摄像机有问题。这似乎不是这里的问题。在其他草图中,我能让相机正常工作


如果有任何反馈,我将不胜感激。谢谢。

Java 9中引入的模块系统在哪些模块可以使用其他模块的功能方面有更多的限制。有关更多信息,请参见此问题和答案:


您使用Processing 4的具体原因是什么?目前只有alpha版本可用,所以如果可能的话,我会使用processing3。当我试图在Processing 4中运行您的代码时,我得到了与您相同的错误。当我在Processing 3.5.4(在Ubuntu上)中运行你的代码时,它运行时没有任何问题,面部识别工作正常。我建议您尝试一下Processing 3。

谢谢您的回复。这很有帮助。我之所以使用Processing 4,是因为之前所有版本的Processing和MAC OS Catalina都出现了问题。然而。这与3.5.4一起工作!!作为一个提示,我确实必须通过终端运行它才能让相机工作。否则,MAC OS不会授予您访问摄像头的权限。再次感谢。