首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android上的增强现实

android上的增强现实
EN

Stack Overflow用户
提问于 2012-02-09 15:04:48
回答 2查看 2K关注 0票数 0

我刚刚开始在android手机上开发一个基于增强现实的人脸检测项目。我是AR (增强现实)的新手,到目前为止,我贡献和评估了面部行列式的算法,但我对AR没有任何想法,并想在我的项目中实现AR,所以专家们能告诉我,从哪里开始,我需要任何额外的工具来创建AR应用程序( /do我必须在集成开发环境(Eclipse)上添加任何插件)?或者有没有比eclipse for AR更好的IDE?请检查下面的链接并给出你的评论,因为我的项目看起来完全像下面给出的链接,

http://www.readwriteweb.com/archives/recognizr_facial_recognition_coming_to_android_phones.php

http://www.blackweb20.com/2010/03/01/recognizr-facial-recognition-on-android/#.TzNswE7xodM

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2012-02-09 15:15:18

增强现实的实现本身很简单。它基本上只是一个覆盖在预览图片上,你可以在这个覆盖上放任何你喜欢的东西。此项目中包含一个工作示例:

http://sourceforge.net/projects/javaocr/

(还有其他的计数)

棘手的部分从这里开始。对于人脸识别,人们通常使用Haar变换,也有用OpenCV实现的(也有其他实现) -但它是否能在android java代码中表现得足够好,从而真正有用(你必须用本机代码来做),这是值得怀疑的。这只是人脸识别-它说你-“嘿,伙计,这是你的脸。也许”-而不是身份识别。

至于集成开发环境,我更喜欢IntelliJ IDEA,因为它是更好的java IDE (有人会马上批评我; ),而且它有更好的android支持。但这是商业产品(免费的商业版,个人许可不是很贵)

票数 0
EN

Stack Overflow用户

发布于 2012-02-09 15:26:11

你可以试试这段代码:

代码语言:javascript
复制
    public class FaceDetectionActivity extends Activity 
   {
     /** Called when the activity is first created. */
    @Override
     public void onCreate(Bundle savedInstanceState) 
     {
       super.onCreate(savedInstanceState);
    //setContentView(R.layout.main);
    setContentView(new MyView(this));
   }

private class MyView extends View
{
    private Bitmap myBitmap;
    private int width, height;
    private FaceDetector.Face[] detectedFaces;
    private int NUMBER_OF_FACES=4;
    private FaceDetector faceDetector;
    private int NUMBER_OF_FACE_DETECTED;
    private float eyeDistance;

    public MyView(Context context) 
    {
        super(context);
        BitmapFactory.Options bitmapFatoryOptions=new BitmapFactory.Options();
        bitmapFatoryOptions.inPreferredConfig=Bitmap.Config.RGB_565;
        myBitmap=BitmapFactory.decodeResource(getResources(), R.drawable.faces,bitmapFatoryOptions);
        width=myBitmap.getWidth();
        height=myBitmap.getHeight();
        detectedFaces=new FaceDetector.Face[NUMBER_OF_FACES];
        faceDetector=new FaceDetector(width,height,NUMBER_OF_FACES);
        NUMBER_OF_FACE_DETECTED=faceDetector.findFaces(myBitmap, detectedFaces);
    }

    @Override
    protected void onDraw(Canvas canvas)
    {
        canvas.drawBitmap(myBitmap, 0,0, null);
        Paint myPaint = new Paint();
        myPaint.setColor(Color.GREEN);
        myPaint.setStyle(Paint.Style.STROKE); 
        myPaint.setStrokeWidth(3);

        for(int count=0;count<NUMBER_OF_FACE_DETECTED;count++)
        {
            Face face=detectedFaces[count];
            PointF midPoint=new PointF();
            face.getMidPoint(midPoint);

            eyeDistance=face.eyesDistance();
            canvas.drawRect(midPoint.x-eyeDistance, midPoint.y-eyeDistance, midPoint.x+eyeDistance, midPoint.y+eyeDistance, myPaint);
        }
    }

 }
}

这段代码将从Bitmap中检测人脸,因此您也应该通过相机欢呼来实现此技术。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9206711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档