Erro ao detectar objetos usando Javacv e Netbeans

Olá galera estou usando o cvHaarDetectObjects para localizar o nariz de uma pessoa, porem estou recebendo o seguinte erro

[color=red]
OpenCV Error: Null pointer (Invalid classifier cascade) in unknown function, file …\src\opencv\modules\objdetect\src\haar.cpp, line 1495
Exception in thread “main” java.lang.RuntimeException: …\src\opencv\modules\objdetect\src\haar.cpp:1495: error: (-27) Invalid classifier cascade

at com.googlecode.javacv.cpp.opencv_objdetect.cvHaarDetectObjects(Native Method)
at com.googlecode.javacv.cpp.opencv_objdetect.cvHaarDetectObjects(opencv_objdetect.java:244)
at opencv123.Opencv123.main(Opencv123.java:45)
[/color]

segue meu código

 package opencv123;

import com.googlecode.javacv.JavaCvErrorCallback;
import com.googlecode.javacv.cpp.opencv_core.CvMemStorage;
import com.googlecode.javacv.cpp.opencv_core.CvRect;
import com.googlecode.javacv.cpp.opencv_core.CvScalar;
import com.googlecode.javacv.cpp.opencv_core.CvSeq;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
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;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;



public class Opencv123 {

  private static final String CASCADE_FILE = "C:\\opencv\\data\\haarcascades\\haarcascade_mcs_nose.xml";
 
  public static void main(String[] args) throws Exception {
      new JavaCvErrorCallback().hashCode();
           
 
     BufferedImage imagem = ImageIO.read(new File("eu.jpg"));
  
     IplImage image2 = IplImage.createFrom(imagem); 
    
            
    IplImage grayImage2 = cvCreateImage(cvGetSize(image2), 01, 1);
    
    
    cvCvtColor(image2, 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(image2, cvPoint(r.x(), r.y()),
      cvPoint(r.x() + r.width(), r.y() + r.height()), CvScalar.YELLOW, 1, CV_AA, 0);
    }
 
    BufferedImage c =  image2.getBufferedImage();
    
    
    ImageIO.write(c, "jpg", new File("eu2.jpg"));
  }
}

[quote=Luanaas]Olá galera estou usando o cvHaarDetectObjects para localizar o nariz de uma pessoa, porem estou recebendo o seguinte erro

[color=red]
OpenCV Error: Null pointer (Invalid classifier cascade) in unknown function, file …\src\opencv\modules\objdetect\src\haar.cpp, line 1495
Exception in thread “main” java.lang.RuntimeException: …\src\opencv\modules\objdetect\src\haar.cpp:1495: error: (-27) Invalid classifier cascade

at com.googlecode.javacv.cpp.opencv_objdetect.cvHaarDetectObjects(Native Method)
at com.googlecode.javacv.cpp.opencv_objdetect.cvHaarDetectObjects(opencv_objdetect.java:244)
at opencv123.Opencv123.main(Opencv123.java:45)
[/color]

Eii faça essas alterações no seu código, ok…

[code]

import com.googlecode.javacv.JavaCvErrorCallback;
import com.googlecode.javacv.cpp.opencv_core.CvMemStorage;
import com.googlecode.javacv.cpp.opencv_core.CvRect;
import com.googlecode.javacv.cpp.opencv_core.CvScalar;
import com.googlecode.javacv.cpp.opencv_core.CvSeq;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
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;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;

import com.googlecode.javacv.cpp.opencv_core.IplImage;
import static com.googlecode.javacv.cpp.opencv_core.;
import static com.googlecode.javacv.cpp.opencv_highgui.
;
import static com.googlecode.javacv.cpp.opencv_objdetect.*;

public class Opencv123 {

private static final String CASCADE_FILE = “C:\test\haarcascade_mcs_nose.xml”;

public static void main(String[] args) throws Exception {

 //BufferedImage imagem = ImageIO.read(new File("C:\\test\\1.jpg"));  

 //IplImage image2 = IplImage.createFrom(imagem);   
  
IplImage grayImage2 = cvLoadImage("C:\\test\\1.jpg");  
          
//IplImage grayImage2 = cvCreateImage(cvGetSize(image2), 01, 1);  
  
  
//cvCvtColor(image2, grayImage2, CV_BGR2GRAY);  
CvHaarClassifierCascade cascade = new CvHaarClassifierCascade(cvLoad(CASCADE_FILE));  
CvMemStorage storage = CvMemStorage.create();  
 
CvSeq faces = cvHaarDetectObjects(
        grayImage2,
        cascade, 
        storage, 
        1.5, 
        3, 
        CV_HAAR_DO_CANNY_PRUNING);  

 for (int i = 0; i < faces.total();i++) {  
  CvRect r = new CvRect(cvGetSeqElem(faces, i));  
  cvRectangle(grayImage2, cvPoint(r.x(), r.y()),  
  cvPoint(r.x() + r.width(), r.y() + r.height()), CvScalar.YELLOW, 1, CV_AA, 0);  
}  

cvShowImage(“Result”, grayImage2);
cvWaitKey(0);
//BufferedImage c = image2.getBufferedImage();

//ImageIO.write(c, "jpg", new File("eu2.jpg"));  

}
}

[/code][/quote]

Douglasmanteira obrigado pela ajuda,

fiz as modificações que você falou, mas apareceu um erro na linha do "CV_HAAR_DO_CANNY_PRUNING"
o erro é esse

[color=red]run:
OpenCV Error: Null pointer (Invalid classifier cascade) in unknown function, file …\src\opencv\modules\objdetect\src\haar.cpp, line 1495
Exception in thread “main” java.lang.RuntimeException: …\src\opencv\modules\objdetect\src\haar.cpp:1495: error: (-27) Invalid classifier cascade

    at com.googlecode.javacv.cpp.opencv_objdetect.cvHaarDetectObjects(Native Method)
    at com.googlecode.javacv.cpp.opencv_objdetect.cvHaarDetectObjects(opencv_objdetect.java:244)
    at opencv123.Opencv123.main(Opencv123.java:46)

Java Result: 1[/color]

você saberia me responder o que é ?

[quote=Luanaas]Douglasmanteira obrigado pela ajuda,

fiz as modificações que você falou, mas apareceu um erro na linha do "CV_HAAR_DO_CANNY_PRUNING"
o erro é esse

[color=red]run:
OpenCV Error: Null pointer (Invalid classifier cascade) in unknown function, file …\src\opencv\modules\objdetect\src\haar.cpp, line 1495
Exception in thread “main” java.lang.RuntimeException: …\src\opencv\modules\objdetect\src\haar.cpp:1495: error: (-27) Invalid classifier cascade

    at com.googlecode.javacv.cpp.opencv_objdetect.cvHaarDetectObjects(Native Method)
    at com.googlecode.javacv.cpp.opencv_objdetect.cvHaarDetectObjects(opencv_objdetect.java:244)
    at opencv123.Opencv123.main(Opencv123.java:46)

Java Result: 1[/color]

você saberia me responder o que é ?[/quote]

Import

Olha me parece que é problema de importação verifique a versão das suas LIB, nesse exemplo utilizei as mais atuais…
Tente também pegar seu arquivo haarcascade_mcs_nose.xml e jogar dentro da pasta principal do projeto ou criar o caminho C:/test/ e joga o arquivo conforme o exemplo.