編輯:關於Android編程
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);
}
}
}
主要是通過人臉識別庫,找出圖片上的人臉,然後根據雙眼之間的距離和人臉的中心點,就可以畫出人臉的所在地。
經常玩手機的朋友都知道。微信朋友圈是是我們經常逛的地方,大家知道只要微信朋友圈有消息更新,我們微信界面上就會相信一個紅點提示,有強迫症的朋友可能就著急了,下
國際慣例,先來效果圖 在閱讀本文章之前,請確定熟悉【Scroller】相關的知識,如果不熟悉,請小伙伴兒先百度後再來吧。假如你已經知道【Scroller】了,那
Android異步更新UI-線程池-Future-Handler實例分析 前言: 我們在開發Android過程中,在處理耗時任務和UI交互的過程中,都會將耗時任務放到子
設置ES文件浏覽器連接電腦管理需要管理賬號。我們想用ES文件浏覽器來管理我們手機的時候,又不想一連電腦,別人知道我的手機ftp的時候,就可以進入,想設置賬戶