实现android图像识别的几种方法
最近完成了毕业设计,论文名为基于图像识别的移动人口管理系统。编写过程中学到了几种图像识别的技术,先写下来与大家分享。
第一种,直接使用免费得图像识别web服务器 地址为http://maggie.ocrgrid.org/
实现代码:1.为了提高图像的识别率,首先要灰度化
- private Bitmap convertToGrayscale(Bitmap bitmap) {
- ColorMatrix colorMatrix = new ColorMatrix();
- colorMatrix.setSaturation(0);
- Paint paint = new Paint();
- ColorMatrixColorFilter cmcf = new ColorMatrixColorFilter(colorMatrix);
- paint.setColorFilter(cmcf);
- Bitmap result = Bitmap.createBitmap(bitmap.getWidth(), bitmap
- .getHeight(), Bitmap.Config.RGB_565);
- Canvas drawingCanvas = new Canvas(result);
- Rect src = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
- Rect dst = new Rect(src);
- drawingCanvas.drawBitmap(bitmap, src, dst, paint);
- return result;
- }
第二种,使用Aprise开源
这个开源代码虽然一般处理认证图像,但也可以实现图像识别,你只需将它引入你的服务器,至于如何在android中实现,映像中好像不能使用其中方法,将灰度化(方法可看第一种的第一步)后的图像上传即可
第三种,使用Tesseract开源
这个开源代码是使用c++来编写的,你要实现的就必须学会java的jni技术,以及android NDK方法
第四种,Mezzofanti_java_code_1_0_3
这是一个基于android开源的图像识别软件,你只需下载他,重写里面的一些代码,即可实现,前提是你要读懂里面的代码