Преобразование цветного изображения с камеры 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" содержит черно-белое изображение, которое вы ищете:)