Преобразование цветного изображения с камеры Xoom в монохромное изображение для распознавания QR-кода

Я сделал приложение на Motorola Xoom, которое распознает QrCode с помощью библиотеки xzing. Я уже сделал то же самое приложение на своем компьютере, и оно отлично работало на моем компьютере, но в Xoom ему трудно распознать QrCode. Нужно очень хорошее освещение без прямого точечного освещения. Проблема исходит от камеры. Фронтальная камера работает неплохо, но никогда не так хорошо, как веб-камера на моем labtop. Задняя камера хуже, даже если у нее лучшее разрешение. Довольно странно, что задняя камера дает худший результат, но, учитывая, что фокус не работает хорошо, я думаю, что это нормально. Вам нужна очень четкая картинка, чтобы иметь хороший результат.

Прямо сейчас я использую алгоритм zxing под названием PlanarYUVLuminanceSource.

Поэтому мне интересно, нашли ли вы, ребята, какой-нибудь хороший алгоритм для преобразования цветного изображения с камеры Xoom в монохромное изображение. Библиотека xzing для распознавания монохромного изображения достаточно хороша, так что это просто монохромное изображение плохого качества. Не нужно рекомендовать мне другое приложение для чтения монохромных изображений.

1 ответ

Bitmap yourPhoto = //The bitmap of the photo from your camera
Bitmap tempBitmap = Bitmap.createBitmap(yourPhoto.getWidth(), yourPhoto.getHeight(), Bitmap.Config.ARGB_4444);
Canvas c = new Canvas(tempBitmap);
Paint paint = null;
ColorMatrix cm = new ColorMatrix();
paint = new Paint();
cm.setSaturation(0);
ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
paint.setColorFilter(f);        
c.drawBitmap(yourPhoto, 0, 0, paint);

Теперь ваш "tempBitmap" содержит черно-белое изображение, которое вы ищете:)

Другие вопросы по тегам