Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android人臉識別技術

Android人臉識別技術

編輯:關於Android編程

Android人臉識別技術用到的底層庫:android/external/neven/,framework 層:frameworks/base/media/java/android/media/FaceDetector.java。

java層接口的限制:

1、只能接受bitmap的數據。

2、只能識別出雙眼睛距離不大於20像素的人臉。

3、只能檢測人臉的位置,不能對人臉匹配。

下面代碼的運行效果:


\

<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHByZSBjbGFzcz0="brush:java;">@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.andy ); //設置最大的人臉數目 int maxFaces = 3; //創建人臉識別器 FaceDetector detector = new FaceDetector(bitmap.getWidth(),bitmap.getHeight(), maxFaces); //裝在人臉的容器 Face[] faces = new Face[maxFaces]; //尋找臉 detector.findFaces(bitmap, faces ); //創建可以修改的bitmap Bitmap alterBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig()); Canvas canvas = new Canvas(alterBitmap); Paint paint = new Paint(); canvas.drawBitmap(bitmap, 0,0, paint); for(Face face:faces){ if (face != null) { //人臉眼睛之間的距離 float eyesDistance = face.eyesDistance(); //人臉中心點的坐標 PointF point = new PointF(); //獲得人臉的中心點 face.getMidPoint(point); Paint paint_ = new Paint(); paint_.setColor(Color.GREEN); paint_.setAlpha(100); paint_.setAntiAlias(true); paint_.setStyle(Paint.Style.STROKE); paint_.setStrokeWidth(3); // canvas.drawCircle(point.x, point.y,radius , paint_); canvas.drawRect( //矩形框的位置參數 (int)(point.x - eyesDistance), (int)(point.y - eyesDistance), (int)(point.x + eyesDistance), (int)(point.y + eyesDistance), paint_); ImageView iv = new ImageView(this); iv.setImageBitmap(alterBitmap); setContentView(iv); } } }
主要是通過人臉識別庫,找出圖片上的人臉,然後根據雙眼之間的距離和人臉的中心點,就可以畫出人臉的所在地。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved