面部识别类是否可以识别数据库中只有1个图像的面部?我只使用正面,我想使用fisherfaces算法。
无论如何,我正在尝试实现一种基于我在互联网上找到的样本的方法,它还没有完整,没有经过测试。
该方法将使用视频捕获中返回Mat的帧,Mat帧转换为bufferedImage,我将此bufferedImage作为参数发送到此方法,我打算用于人脸识别。我何时使用
IplImage getVCFrame = createFrom(frame)
它表示createFrom(BufferedImage)未定义。我希望这可以将缓冲的图像转换为IplImage。
到目前为止,这是我剩下的代码,(请注意它不完整,我只是想弄清楚为什么eclipse会给我未定义的错误)
package Function;
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.awt.image.BufferedImage;
import java.io.File;
import java.io.FilenameFilter;
import org.opencv.core.Mat;
public class FaceRecognition {
public void checkFace(String imagePath, BufferedImage frame) {
// Video Camera Frame
IplImage getVCFrame = new IplImage();
getVCFrame = createFrom(frame);
// Frame from Storage
IplImage img;
IplImage grayImg;
int numberOfImages = 1;
int label;
MatVector images = new MatVector(numberOfImages);
int[] labels = new int[numberOfImages];
img = cvLoadImage(imagePath);
label = 1;
grayImg = IplImage.create(img.width(), img.height(), IPL_DEPTH_8U, 1);
cvCvtColor(img, grayImg, CV_BGR2GRAY);
images.put(0, img);
labels[0] = label;
IplImage GrayVCFrame = IplImage.create(getVCFrame.width(), getVCFrame.height(), IPL_DEPTH_8U, 1);
FaceRecognizer fr = createFisherFaceRecognizer();
//FaceRecognizer faceRecognizer = createEigenFaceRecognizer();
// FaceRecognizer faceRecognizer = createLBPHFaceRecognizer();
fr.train(images, labels);
cvCvtColor(getVCFrame, GrayVCFrame, CV_BGR2GRAY);
}
}
起初我使用人脸检测OpenCV的,但是,当它来到人脸识别我找不到任何帮助和教程,所以我进口JavaCV尝试使用它的人脸识别
答案 0 :(得分:0)
我设法解决了我的错误,我的语法错误...
getVCFrame = IplImage.createFrom(frame);
这解决了我的错误,我将在我的代码完成后测试是否可以使用1张图像