我刚刚开始在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
谢谢!
发布于 2012-02-09 15:15:18
增强现实的实现本身很简单。它基本上只是一个覆盖在预览图片上,你可以在这个覆盖上放任何你喜欢的东西。此项目中包含一个工作示例:
http://sourceforge.net/projects/javaocr/
(还有其他的计数)
棘手的部分从这里开始。对于人脸识别,人们通常使用Haar变换,也有用OpenCV实现的(也有其他实现) -但它是否能在android java代码中表现得足够好,从而真正有用(你必须用本机代码来做),这是值得怀疑的。这只是人脸识别-它说你-“嘿,伙计,这是你的脸。也许”-而不是身份识别。
至于集成开发环境,我更喜欢IntelliJ IDEA,因为它是更好的java IDE (有人会马上批评我; ),而且它有更好的android支持。但这是商业产品(免费的商业版,个人许可不是很贵)
发布于 2012-02-09 15:26:11
你可以试试这段代码:
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中检测人脸,因此您也应该通过相机欢呼来实现此技术。
https://stackoverflow.com/questions/9206711
复制相似问题