OpenImaj - 人脸检测 - 显示找到的人脸
OpenImaj - face detection - display found faces
我正在使用 OpenImaj 检测图像中的人脸。
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
import org.openimaj.image.FImage;
import org.openimaj.image.ImageUtilities;
import org.openimaj.image.MBFImage;
import org.openimaj.image.colour.Transforms;
import org.openimaj.image.processing.face.detection.DetectedFace;
import org.openimaj.image.processing.face.detection.FaceDetector;
import org.openimaj.image.processing.face.detection.HaarCascadeDetector;
public class FaceDetection {
public static void main(String[] args) {
MBFImage image;
try {
image = ImageUtilities.readMBF(new FileInputStream("image.jpg"));
FaceDetector<DetectedFace,FImage> fd = new HaarCascadeDetector(80);
List<DetectedFace> faces = fd. detectFaces (Transforms.calculateIntensity(image));
System.out.println(faces.size());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
要显示图像,我们可以使用 DisplayUtilities class: DisplayUtilities.display(image);
但是,找到的人脸类型为 DetectedFace.
你知道如何显示DetectedFace类型的人脸吗?
谢谢。
您应该可以使用 getFacePatch() 获取图像。
加上之前的回答:
有了 getFacePatch()
你得到一张脸 FImage
:
final FImage faceFImage = face.getFacePatch();
现在这个faceFImage需要转换成BufferedImage
:
final BufferedImage bufferedFaceImage = ImageUtilities.createBufferedImage(faceFImage);
现在这个 bufferedFaceImage 可以显示为:
DisplayUtilities.display(bufferedFaceImage);
我正在使用 OpenImaj 检测图像中的人脸。
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
import org.openimaj.image.FImage;
import org.openimaj.image.ImageUtilities;
import org.openimaj.image.MBFImage;
import org.openimaj.image.colour.Transforms;
import org.openimaj.image.processing.face.detection.DetectedFace;
import org.openimaj.image.processing.face.detection.FaceDetector;
import org.openimaj.image.processing.face.detection.HaarCascadeDetector;
public class FaceDetection {
public static void main(String[] args) {
MBFImage image;
try {
image = ImageUtilities.readMBF(new FileInputStream("image.jpg"));
FaceDetector<DetectedFace,FImage> fd = new HaarCascadeDetector(80);
List<DetectedFace> faces = fd. detectFaces (Transforms.calculateIntensity(image));
System.out.println(faces.size());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
要显示图像,我们可以使用 DisplayUtilities class: DisplayUtilities.display(image); 但是,找到的人脸类型为 DetectedFace.
你知道如何显示DetectedFace类型的人脸吗?
谢谢。
您应该可以使用 getFacePatch() 获取图像。
加上之前的回答:
有了
getFacePatch()
你得到一张脸FImage
:final FImage faceFImage = face.getFacePatch();
现在这个faceFImage需要转换成
BufferedImage
:final BufferedImage bufferedFaceImage = ImageUtilities.createBufferedImage(faceFImage);
现在这个 bufferedFaceImage 可以显示为:
DisplayUtilities.display(bufferedFaceImage);