Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于OpenImaj的Java人脸检测_Java_Opencv_Image Processing - Fatal编程技术网

基于OpenImaj的Java人脸检测

基于OpenImaj的Java人脸检测,java,opencv,image-processing,Java,Opencv,Image Processing,我正在尝试实现一个功能,检查png图像是否包含人脸。我正在尝试使用OpenImaj,并注意到它有4个检测器(Identity、Haar等) 如果任何人都可以共享相关的代码片段import java.io.File,我们将不胜感激; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import org.openimaj.image.DisplayUt

我正在尝试实现一个功能,检查png图像是否包含人脸。我正在尝试使用OpenImaj,并注意到它有4个检测器(Identity、Haar等)

如果任何人都可以共享相关的代码片段

import java.io.File,我们将不胜感激;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.openimaj.image.DisplayUtilities;
import org.openimaj.image.FImage;
import org.openimaj.image.ImageUtilities;
import org.openimaj.image.MBFImage;
import org.openimaj.image.colour.RGBColour;
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;
import org.openimaj.math.geometry.shape.Rectangle;


public class App {
    public static void main(String[] args) throws Exception, IOException {


        final MBFImage image = ImageUtilities.readMBF(new File("d:\\java\\face\\bin.jpeg"));

        FaceDetector<DetectedFace, FImage> fd = new HaarCascadeDetector(200);
        List<DetectedFace> faces = fd.detectFaces(Transforms.calculateIntensity(image));
        System.out.println("# Found faces, one per line.");
        System.out.println("# <x>, <y>, <width>, <height>");

        for (Iterator<DetectedFace> iterator = faces.iterator(); iterator.hasNext();) {
            DetectedFace face = iterator.next();
            Rectangle bounds = face.getBounds();

            image.drawShape(face.getBounds(), RGBColour.RED);

            // System.out.println(bounds.x + ";" + bounds.y + ";" + bounds.width + ";" +
            // bounds.height);

        }

        DisplayUtilities.display(image);

    }
}
导入java.io.IOException; 导入java.util.Iterator; 导入java.util.List; 导入org.openimaj.image.DisplayUtilities; 导入org.openimaj.image.FImage; 导入org.openimaj.image.ImageUtilities; 导入org.openimaj.image.MBFImage; 导入org.openimaj.image.color.RGBColour; 导入org.openimaj.image.color.Transforms; 导入org.openimaj.image.processing.face.detection.DetectedFace; 导入org.openimaj.image.processing.face.detection.FaceDetector; 导入org.openimaj.image.processing.face.detection.HaarCascadeDetector; 导入org.openimaj.math.geometry.shape.Rectangle; 公共类应用程序{ 公共静态void main(字符串[]args)引发异常,IOException{ final MBFImage image=ImageUtilities.readMBF(新文件(“d:\\java\\face\\bin.jpeg”); 面部检测器fd=新的哈卡斯卡检测器(200); 列表面=fd.detectFaces(Transforms.calculateIntensity(image)); System.out.println(“#找到面,每行一个”); System.out.println(“#,,”); for(Iterator Iterator=faces.Iterator();Iterator.hasNext();){ DetectedFace=iterator.next(); 矩形边界=face.getBounds(); drawShape(face.getBounds(),RGBColour.RED); //System.out.println(bounds.x+”;“+bounds.y+”;“+bounds.width+”;”+ //边界(高度); } 显示工具。显示(图像); } }
你的问题在Stackoverflow上是离题的,但你可以试着在Stackoverflow上提问,我想知道为什么会离题?是';t SOF是关于像我这样的常见问题的代码解决方案?这里有很多关于OpenCV人脸检测的帖子,为什么我不能询问不同的实现?“要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于堆栈溢出来说是离题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,以及迄今为止为解决这一问题所做的工作。“-我相应地修改了问题,希望这种格式更适合我同意你的说法,即opencv受到了很多关注-但一个简单的搜索给了你这一点。另一个可能在搜索中被掩埋的是。我在电影中使用过它,通常是70%的准确度,如果阴影不好,可能是50%,但是对于直视的人来说是可以的。我不认为这另一个更好,你必须使用许多修复和技巧来达到90%以上-在一般情况下-不仅仅是一个家伙对他的网络摄像头说话