[Resolvido]Erro Exception in thread "main" java.lang.NullPointerException

4 respostas
Luanaas

Olá pessoal, estou usando JavaCV para abrir uma imagem e localizar o rosto de uma pessoa, mas ao executar recebo o seguinte
erro:

Exception in thread "main" java.lang.NullPointerException
at opencv123.Opencv123.main(Opencv123.java:23)

meu código ta assim:

package opencv123;

import com.googlecode.javacv.JavaCvErrorCallback;
import static com.googlecode.javacv.cpp.opencv_core.*;
import static com.googlecode.javacv.cpp.opencv_highgui.*;
import static com.googlecode.javacv.cpp.opencv_imgproc.CV_BGR2GRAY;
import static com.googlecode.javacv.cpp.opencv_imgproc.cvCvtColor;
import com.googlecode.javacv.cpp.opencv_objdetect.CvHaarClassifierCascade;
import static com.googlecode.javacv.cpp.opencv_objdetect.cvHaarDetectObjects;



public class Opencv123 {

  private static final String CASCADE_FILE = "haarcascade_frontalface_alt.xml";
 
  public static void main(String[] args) throws Exception {
    
    new JavaCvErrorCallback().hashCode();
          
    IplImage originalImage = cvLoadImage(args[0], 1);
 
    IplImage grayImage2 = new IplImage(IplImage.create(originalImage.width(),originalImage.height(), IPL_DEPTH_8U, 1));
    
    cvCvtColor(originalImage, grayImage2, CV_BGR2GRAY);
 
    CvMemStorage storage = CvMemStorage.create();
 
    CvHaarClassifierCascade cascade = new CvHaarClassifierCascade(cvLoadImage(CASCADE_FILE));
 
    CvSeq faces = cvHaarDetectObjects(grayImage2, cascade, storage, 1.1, 1, 0);
 
    for (int i = 0; i < faces.total();i++) {
      CvRect r = new CvRect(cvGetSeqElem(faces, i));
      cvRectangle(originalImage, cvPoint(r.x(), r.y()),
      cvPoint(r.x() + r.width(), r.y() + r.height()), CvScalar.YELLOW, 1, CV_AA, 0);
    }
 
    cvSaveImage(args[1], originalImage);
  }
}

nunca trabalhei com JavaCV antes, estou seguindo alguns tutoriais, os outros erros eu consegui tirar mais esse persiste...

4 Respostas

El_Psy_Congroo

Como você está chamando a aplicação?
Tem que tomar cuidado com o args[0] e args[1].

Luanaas

El_Psy_Congroo

estou chamando a aplicação de opencv123

El_Psy_Congroo

Não, quis dizer como você executa o programa.
Você passa os parâmetros que ele espera? (args[0], args[1]).

Luanaas

El_Psy_Congroo valeu pela dica, o tutorial que eu estava seguindo não mostrava a passagem de parâmetros

e eu me esqueci desse detalhe

Criado 1 de fevereiro de 2013
Ultima resposta 2 de fev. de 2013
Respostas 4
Participantes 2