使用FaceDetection进行人脸识别

该博客介绍了如何在Android应用中实现人脸识别功能,通过在Activity的onCreate中添加DrawingView来显示检测到的人脸矩形框。文章提供了相关参考资料供读者深入学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要思路:

1.在Activity 的onCreate中添加DrawingView,用于显示矩形框

<pre name="code" class="java"><span style="font-size:18px;">public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		// 屏幕方向设置
		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

		....

		drawingView = new DrawingView(this);
		LayoutParams layoutParamsDrawing = new LayoutParams(
				LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
		this.addContentView(drawingView, layoutParamsDrawing);
}</span>


2.写一个FaceDetectionListener 类,用于监听识别后的回调
<span style="font-size:18px;">FaceDetectionListener faceDetectionListener = new FaceDetectionListener() {

		@Override
		public void onFaceDetection(final Face[] faces, Camera camera) {
			if (faces.length == 0) {
				prompt.setText(" No Face Detected! ");
				drawingView.setHaveFace(false);
				Log.i(TAG, " No Face Detected! ");
			} else {
				prompt.setText(String.valueOf(faces.length)
						+ " Face Detected :) ");
				drawingView.setHaveFace(true);
				detectedFaces = faces;
				Log.i(TAG, " Face Detected :) ");
			}
		}
	};</span>

3.1在surface创建时,创建相机对象并绑定监听器
<span style="font-size:18px;">public void surfaceCreated(SurfaceHolder holder) {
		camera = Camera.open();
		camera.setFaceDetectionListener(faceDetectionListener);
	}</span>


3.2在surface改变时,开启相机人脸识别
<span style="font-size:18px;">public void surfaceChanged(SurfaceHolder holder, int format, int width,
			int height) {
		...
				int maxDetectFace = camera.getParameters()
						.getMaxNumDetectedFaces();
				if (maxDetectFace > 0)
					<strong>camera.startFaceDetection();</strong>
				previewing = true;
		...
	}</span>



下载链接:


参考文献:

http://www.tuicool.com/articles/JJVbmu

http://www.tuicool.com/articles/BRji6z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值