说到AI识别,很多人会觉得很神秘很高大尚。但随着科技的发展AI已经逐步成熟和简单,这几天我们就围绕如何打造一个AI识别系统进行宣讲吧。
首先AI识别系统,肯定是通过类似视觉识别这样,有图才能有结果,当然你说语音识别就要语音才有结果。不过语音不是咱们这次的重点。我们以视觉识别为主。视觉识别肯定要通过摄像头获取外界或对应事物的情况,接下来,就是我们这篇文章的重点,如何在安卓上构建摄像头,也希望能使大家减少一些弯路。
由于我使用的是安卓开发板,摄像头是外置USB的家用普通摄像头一开始我是使用Android UVCCamera,但花了比较长的时间发现这个库用起来不容易架驽和不是太稳定;后来尝试使用安卓自己原生的摄像头库,想不到一下就成功了并且还挺稳定。那我们就用原生的库吧。
1、用原生库,首先肯定要进行授权。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
2、在XML里面构建视频播放的SurfaceView(播放窗口)。
<SurfaceView
android:id="@+id/arc_hf_video_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
3、在程序中进行相关参数的定义。
protected Camera camera;//摄像头
private SurfaceView mSurfaceview;
private SurfaceHolder holder;
protected boolean isPreview;
mSurfaceview = (SurfaceView) this.findViewById(R.id.arc_hf_video_view);
holder = mSurfaceview.getHolder();
4、打开摄像头及生成图片。
try {
camera = Camera.open();
Camera.Parameters parameters = camera.getParameters();
parameters.setPictureFormat(PixelFormat.JPEG);// 设置照片的输出格式
parameters.set("jpeg-quality", 85);// 照片质量
camera.setParameters(parameters);
camera.setPreviewDisplay(holder);
camera.startPreview();
isPreview = true;
} catch (Exception e) {
e.printStackTrace();
}
//判断咯
if (camera != null) {
Toast.makeText(view.getContext(), "给哥笑一个", Toast.LENGTH_SHORT).show();
camera.autoFocus(null);
camera.takePicture(null, null, new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/Camera/";
String fileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".jpg";
File out = new File(path);
if (!out.exists()) {
out.mkdirs();
}
out = new File(path, fileName);
try {
FileOutputStream outStream = new FileOutputStream(out);
bitmap.compress(CompressFormat.JPEG, 100, outStream);
outStream.close();
camera.startPreview();
} catch (Exception e) {
e.printStackTrace();
}
//camera.stopPreview();
//camera.release();
//camera = null;
showMsg("拍照成功"+fileName);
}
});
}else {
Toast.makeText(view.getContext(),"没相机拍个啥", Toast.LENGTH_SHORT).show();
}
完成以上就构建了安卓原生的摄像头,并进行拍照;拍的照片保存在安卓的DCIM/Camera目录里面。
这样我们的AI识别之旅就算踏出了第一~
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。