Android Detección de la cara
Estoy tratando de hacer la detección de rostros en android, y estoy siguiendo la guía http://www.richardnichols.net/2011/01/java-facial-recognition-haar-cascade-with-jjil-guide/
Pero en el androide en su lugar. Cuando lo hago
- Importar una clase de proyecto diferente en mi proyecto
- Andengine: destinguish entre OnAreaTouched y OnSceneTouched
- Cómo mantener un mapa de bits en la memoria
- Número de pestañas en ActionBar
- Android Material Design cajón de navegación setClickListener
Gray8DetectHaarMultiScale detectHaar = new Gray8DetectHaarMultiScale(is, minScale, maxScale); RgbAvgGray toGray = new RgbAvgGray(); toGray.push(RgbImage); detectHaar.pushAndReturn(toGray.getFront());
Parece que pushAndReturn sólo está devolviendo una cara de la imagen en Android, aunque el código exacto devuelve 2 caras usando el código netbeans. La diferencia es sólo en el tipo de la imagen (RgbImage en android y RgbImageJ2se en netbeans)
No sé qué me falta y por qué no puedo detectar más de una cara en Android?
Estoy utilizando JJIL así que quiero decir por RgbImage: tipo jjil.core.RgbImage, frente a RgbImageJ2SE tipo. ¡El resto es igual !! Parece que pushAndReturn sólo está devolviendo una entrada en la pila. Esto no funciona en ninguna imagen con más de una cara.
- Mes en la clase SimpleDateFormat
- ¿Por qué android.osBundle una clase final?
- Cómo crear un ZIP InputStream en Android sin crear primero un archivo ZIP?
- Convertir un entero en una cadena sin asignar memoria
- Utilizar glVertexAttribPointer y glDrawElements para extraer de un buffer de vértice empaquetado
- OnPageFinished no disparar correctamente al procesar la página web
- Operador ternario devuelve valor - Java / Android
- Android-Magento- Cómo obtener los detalles de varios productos en Android mediante XML-RPC
Ir para esto su trabajo y la detección de todas las caras de una imagen dada
public class AndroidFaceDetector 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 int imageWidth, imageHeight; private int numberOfFace = 5; private FaceDetector myFaceDetect; private FaceDetector.Face[] myFace; float myEyesDistance; int numberOfFaceDetected; Bitmap myBitmap; public myView(Context context) { super(context); // TODO Auto-generated constructor stub BitmapFactory.Options BitmapFactoryOptionsbfo = new BitmapFactory.Options(); BitmapFactoryOptionsbfo.inPreferredConfig = Bitmap.Config.RGB_565; myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.face5, BitmapFactoryOptionsbfo); imageWidth = myBitmap.getWidth(); imageHeight = myBitmap.getHeight(); myFace = new FaceDetector.Face[numberOfFace]; myFaceDetect = new FaceDetector(imageWidth, imageHeight, numberOfFace); numberOfFaceDetected = myFaceDetect.findFaces(myBitmap, myFace); } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub canvas.drawBitmap(myBitmap, 0, 0, null); Paint myPaint = new Paint(); myPaint.setColor(Color.GREEN); myPaint.setStyle(Paint.Style.STROKE); myPaint.setStrokeWidth(3); for(int i=0; i < numberOfFaceDetected; i++) { Face face = myFace[i]; PointF myMidPoint = new PointF(); face.getMidPoint(myMidPoint); myEyesDistance = face.eyesDistance(); canvas.drawRect( (int)(myMidPoint.x - myEyesDistance), (int)(myMidPoint.y - myEyesDistance), (int)(myMidPoint.x + myEyesDistance), (int)(myMidPoint.y + myEyesDistance), myPaint); } } } }