嗨我刚刚接触到javacv并且在互联网上作为ive searche我反击这段代码我决定使用它,但每次运行项目时它总是返回java.lang.NumberFormatExcepti错误。 plesase帮助我解决这个问题,请帮我解决这个问题
package com.shekhar.facedetection;
import com.googlecode.javacv.cpp.opencv_core;
import static com.googlecode.javacv.cpp.opencv_highgui.*;
import static com.googlecode.javacv.cpp.opencv_core.*;
import static com.googlecode.javacv.cpp.opencv_imgproc.*;
import static com.googlecode.javacv.cpp.opencv_contrib.*;
import java.io.File;
import java.io.FilenameFilter;
import static com.googlecode.javacv.cpp.opencv_contrib.createEigenFaceRecognizer;
public class facerecog {
public static void main(String[] args) {
IplImage testImage = cvLoadImage("C://Users//Michelle//Desktop//jaffe//testna.jpg");
File root = new File("C://Users//Michelle//Desktop//jaffe//happy");
FilenameFilter pngFilter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".jpg");
}
};
File[] imageFiles = root.listFiles(pngFilter);
MatVector images = new MatVector(imageFiles.length);
int[] labels = new int[imageFiles.length];
int counter = 0;
int label;
IplImage img;
IplImage grayImg;
for (File image : imageFiles) {
img = cvLoadImage(image.getAbsolutePath());
label = Integer.parseInt(image.getName().split("\\-")[0]);
grayImg = IplImage.create(img.width(), img.height(), IPL_DEPTH_8U, 1);
cvCvtColor(img, grayImg, CV_BGR2GRAY);
images.put(counter, grayImg);
labels[counter] = label;
counter++;
}
IplImage greyTestImage = IplImage.create(testImage.width(), testImage.height(), IPL_DEPTH_8U, 1);
// FaceRecognizer faceRecognizer = createFisherFaceRecognizer();
FaceRecognizer faceRecognizer = createEigenFaceRecognizer();
// FaceRecognizer faceRecognizer = createLBPHFaceRecognizer()
faceRecognizer.train(images, labels);
cvCvtColor(testImage, greyTestImage, CV_BGR2GRAY);
int predictedLabel = faceRecognizer.predict(greyTestImage);
System.out.println("Predicted label: " + predictedLabel);
}
}
错误
Exception in thread "main" java.lang.NumberFormatException: For input string: "happy1.jpg"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at com.shekhar.facedetection.facerecog.main(facerecog.java:40)
第40行
label = Integer.parseInt(image.getName().split("\\-")[0]);
请帮助我帮助我
答案 0 :(得分:0)
删除\\
label = Integer.parseInt(image.getName().split("-")[0]);
您还应该替换文件夹路径中的双/
(即使这不会影响您的结果)
C:/Users/Michelle/Desktop/jaffe/happy