AndroidFace Service技術

來源:互聯網
上載者:User

標籤:android   style   blog   class   c   code   

       AndroidFace Service技術用到的底層庫:android/external/neven/,framework 層:frameworks/base/media/java/android/media/FaceDetector.java。

       java層介面的限制:

            1、只能接受bitmap的資料。

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

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

         下面代碼的運行效果:



@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.andy );//設定最大的人臉數目int maxFaces = 3;//建立Face Service器FaceDetector detector = new FaceDetector(bitmap.getWidth(),bitmap.getHeight(), maxFaces);//裝在人臉的容器Face[] faces = new Face[maxFaces];//尋找臉detector.findFaces(bitmap, faces );//建立可以修改的bitmapBitmap 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);}}}

主要是通過Face Service庫,找出圖片上的人臉,然後根據雙眼之間的距離和人臉的中心點,就可以畫出人臉的所在地。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.