の場合あなたが必要とするのは、デバイスに保存されている画像の顔を検出することです、あなたは間違いなくアンドロイドのソースコードをハックすることなくこれを行うことができます!
は、あなたにその画像における顔の位置を与える(565フォーマットでフォーマット)入力としてBitmap
を受け付けるAPI 1、以降パッケージandroid.media
で利用することができFaceDetector
APIがあります。ここで
はあなたが必要な手順は次のとおりです
の1-ロードBitmap
と565 format
に変換
Bitmap originalBitmap =
BitmapFactory.decodeResource(getResources(),R.drawable.facesPicture);
Bitmap bitmap = originalBitmap .copy(Bitmap.Config.RGB_565, true);
originalBitmap .recycle(); // allow the GC to collect this object
2-(あなたが描画可能なリソースの下facesPicture
ファイルを持っていると仮定して)保持するFace
配列を定義します。検出された顔情報を取得して初期化する。FaceDetector
int MAX_FACES = 20; // assuming that the image will have maximum 20 faces
FaceDetector.Face[] faces = new FaceDetector.Face[MAX_FACES];
FaceDetector faceDetector =
new FaceDetector(bitmap.getWidth(), bitmap.getHeight(), MAX_FACES);
3-検索顔のためのプロセス
int facesCount = faceDetector.findFaces(bitmap, faces);
for(int i=0; i<facesCount; i++) {
FaceDetector.Face face = faces[i];
float detectionConfidence = face.confidence(); // over 0.3 is OK
PointF eyesMidPoint = new PointF();
face.getMidPoint(eyesMidPoint);
float eyesDistance = face.eyesDistance();
float rotationX = face.pose(FaceDetector.Face.EULER_X);
float rotationY = face.pose(FaceDetector.Face.EULER_Y);
float rotationZ = face.pose(FaceDetector.Face.EULER_Z);
// Do something with these values
}
をもたらしますが、私はあなたが、より高度な何かをしたい場合は、OpenCVのに
感謝の使用を検討する必要があり、この記事Face Detection with Android APIs
で説明されている完全なプロジェクトの例hereをダウンロードすることができますが、実際にカメラAPIのソースコードを見つけることができませんでした(私は検索しました)。これについての助けに感謝します。 –
ここでコードを調べてみてください:https://android.googlesource.com/platform/packages/apps/Camera/+/master そこにない場合は、ハードウェアフレームワークの可能性が高いです。それがどうなるか教えてください。 – NathanTempelman
実際には何もありません:http://code.google.com/a/eclipselabs.org/p/face-recognition-android/source/browse/ありがとうございました –