今天,在使用人脸识别的时候出现了一个问题


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


调用系统相机,能够识别出来,没问题,然后我开始把人脸识别接口嵌入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);



然后,就识别成功了。   。


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

所幸,有了解决方法