您的位置:首页 > 运维架构

opencv人脸识别总结三

2015-04-04 19:50 423 查看
今天,在使用人脸识别的时候出现了一个问题

我用了两种方法获取照片,一种是自定义相机,一种是调用系统相机

调用系统相机,能够识别出来,没问题,然后我开始把人脸识别接口嵌入UI中,并使用自定义相机

然后,出问题了,不论怎么识别,识别出来的结果都是正确的,也就是说,错误的照片也识别是正确的,这就是个大问题了

但是,自定义相机得到的图片属性和调用系统相机得到的图片是一样的,

然后测试开始

先调用系统相机获得照片,update,然后predict,嗯,可以识别出错误,

然后,调用自定义相机得到的照片开始识别,嗯返回的label都是-1,貌似属于正确的结果,

那么第二个测试

用自定义相机获得照片,update,然后predict,嗯,识别错误,

然后,调用系统相机,识别都能分别返回-1 (正确的也返回-1可能是识别率的问题,也可能是其他原因)

然后我看了下图片,发现自定义相机得到的图片有白点,就是说失真

网上有人说,是bitmap显示的是缩略图,如果图片过大,android加载会很耗内存,所以显示的都是缩略图。

那么假设就是这个原因导致的问题,那么我要做到的是,要么就不用BItmap去读取文件,采用其他方式进行缩放,遗憾的是,找了很久一直没找到有这种方法,如果哪位知道,麻烦留言,多谢

上面方法行不通了,看了看电视剧,灵光一闪,想起之前调用自定义相机会有图片缩放的现象,那时候是camera设置了宽高,注释掉,这种现象才消失

那么我再次设置这一块,设置为我需要的分辨率

parameters.setPictureSize(ConstantValue.ConstantInt.PICTURE_WIDTH,
ConstantValue.ConstantInt.PICTURE_HEIGHT);
// 2.3.3以后不需要下面这行代码
//				camera.setParameters(parameters);
camera.setDisplayOrientation(90);


然后,就识别成功了。 。

一天的时间,就在搞这个 。 。

所幸,有了解决方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: