Может ли класс распознавания лиц распознавать лицо только с одним изображением в базе данных? Я использую только фронтальные лица, и я хотел бы использовать алгоритм fisherfaces.
В любом случае, я пытаюсь реализовать метод, основанный на образцах, которые я нашел в Интернете, он еще не завершен и не протестирован.
Метод будет использовать кадр из захвата видео, который возвращает Mat, кадр Mat преобразуется в bufferedImage, и я отправляю это bufferedImage в качестве параметра этому методу, который я собираюсь использовать для распознавания лиц. Как бы то ни было, когда я использую
IplImage getVCFrame = создать из (кадра)
он говорит, что 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, чтобы попытаться использовать его для распознавания лиц.