fd = new FaceDetector(mFaceWidth, mFaceHeight, MAX_FACES);
count = fd.findFaces(mFaceBitmap, faces);
使用上面的代码,我在某些图像上遇到了这个错误。
返回 0 个面,因为存在错误 btk_facefinder_putdcr
有人能帮我吗?如何摆脱这个?
相同的代码适用于其他一些图像。
fd = new FaceDetector(mFaceWidth, mFaceHeight, MAX_FACES);
count = fd.findFaces(mFaceBitmap, faces);
使用上面的代码,我在某些图像上遇到了这个错误。
返回 0 个面,因为存在错误 btk_facefinder_putdcr
有人能帮我吗?如何摆脱这个?
相同的代码适用于其他一些图像。
http://blogcs.net/devilkintails/8509767 是数数的图片/图片的丰富必须偶偶
Bitmap srcImg = BitmapFactory.decodeFile(imgUrl);
Bitmap srcFace = srcImg.copy(Bitmap.Config.RGB_565, true);
srcImg = null;
int w = srcFace.getWidth();
int h = srcFace.getHeight();
if (w % 2 == 1) {
w++;
srcFace = Bitmap.createScaledBitmap(srcFace,
srcFace.getWidth()+1, srcFace.getHeight(), false);
}
if (h % 2 == 1) {
h++;
srcFace = Bitmap.createScaledBitmap(srcFace,
srcFace.getWidth(), srcFace.getHeight()+1, false);
}
如本页所述,图像宽度需要均匀。我遇到了同样的问题,所以如果宽度是奇数,我将图像宽度缩放一倍。它开始工作了:)
BitmapFactory.Options bitmap_options = new BitmapFactory.Options();
bitmap_options.inPreferredConfig = Bitmap.Config.RGB_565;
background_image = BitmapFactory.decodeFile(image_fn, bitmap_options);
if((1==(background_image.getWidth()%2))){
background_image = Bitmap.createScaledBitmap(background_image,
background_image.getWidth()+1, background_image.getHeight(), false);
}
FaceDetector face_detector = new FaceDetector(
background_image.getWidth(), background_image.getHeight(),
MAX_FACES);
faces = new FaceDetector.Face[MAX_FACES];
face_count = face_detector.findFaces(background_image, faces);
Log.d("Face_Detection", "Face Count: " + String.valueOf(face_count));
如果您从图库和相机获取图像并且出现此错误,请检查应用面部检测的位图宽度,它必须为 1。
根据文档,developers.android.com
如果图像宽度不均匀,则会发生此异常。有关更多详细信息,请查看此链接。
或者,如果您没有从图库中获取图像并从相机拍摄,则将图像放置在可绘制的文件夹名称中。
我遇到了同样的问题,当我创建一个新的“drawable”文件夹来保存图像时,“drawable”末尾没有“-hdpi”,它起作用了。我现在唯一的问题是缩放图像以适应屏幕,但这应该相对简单。
希望这可以帮助。