Я получил нулевой параметр в Java, когда я пытаюсь применить OpenCV? - PullRequest
0 голосов
/ 11 ноября 2018
 public EllipseParam detectAndDisplay(BufferedImage img, CascadeClassifier faceCascade) {
   // EllipseParam openCV;
    Point center = null;
    double width = 0;
    double height = 0;

    Mat image = ImagePreProcessing.bufferedImageToMat(img);

    // -- Detect faces
    MatOfRect faces = new MatOfRect(); 
    faceCascade.detectMultiScale(image, faces);

    List<Rect> listOfFaces = faces.toList();
    for (Rect face : listOfFaces) {
        center = new Point(face.x + face.width * 0.5, face.y + face.height * 0.5);
        width = face.width*0.5;
        height = face.height*0.5;

        System.out.println("OpenCV: " +center);
        System.out.println("wid:" +width);
        System.out.println("hei:" +height);
        EllipseParam openCV = new EllipseParam(center, width, height);
        System.out.println("value on EllipseParam: " +String.valueOf(openCV));
        return openCV;
    }
    return null;
}

----- в классе EllipseParam

public class EllipseParam {
public double x;
public double y;
public double a;
public double b;
public double theta;
public Point center;
public double width;
public double height;

public EllipseParam(double x,double y,double a,double b,double theta){
    this.x = x;
    this.y = y;
    this.a = a;
    this.b = b;
    this.theta = theta;
}

public EllipseParam(Point center, double width, double height){
    //this.image = image;
    this.center = center;
    this.width = width;
    this.height = height;
}

Я пытаюсь установить параметр и получить его, но вывод, который я получил, выглядит следующим образом:

OpenCV: {196,5, 156,5}

WID: 147,5

хей: 147,5

Исключение в потоке "AWT-EventQueue-0" java.lang.NullPointerException

значение для EllipseParam: entity.EllipseParam@d34c4b

Что не так с моим кодом?

Я прочитал ответ, но на самом деле это не решило мою проблему. Можете ли вы объяснить мне больше?

...