Android ZXing обработка изображений - PullRequest
2 голосов
/ 11 июля 2011

Мне нужно отсканировать матрицу данных, написанную на чем-то вроде this .Код белый / светло-серый, но фон отражает разные цвета, в зависимости от положения камеры (угол), свет.Где будет правильное место для редактирования изображения, захваченного в Android Zxing?Есть ли какие-либо возможные настройки, чтобы сделать изображение черным по белому перед обработкой?

Любая идея была бы отличной.

Ответы [ 3 ]

2 голосов
/ 11 июля 2011

Также взгляните на этот класс:

http://zxing.org/w/docs/javadoc/com/google/zxing/common/HybridBinarizer.html

Возможно, вы используете по умолчанию GlobalHistogramBinarizer, который работает быстрее, но не очень хорошо работает с градиентами.

2 голосов
/ 11 июля 2011
            Bitmap bm = Bitmap.createBitmap(500, 500, Bitmap.Config.RGB_565);
            Canvas c = new Canvas(bm);
            Paint paint = new Paint();
            ColorMatrix cm = new ColorMatrix();
            cm.setSaturation(0);
            ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
            paint.setColorFilter(f);
            int xo = (w-500)/2;
            int yo = (h-500)/2;
            c.drawBitmap(bmp, -xo, -yo, paint);
            bmp.recycle();
0 голосов
/ 11 июля 2011

Похоже, вам нужно немного обработать изображение перед распознаванием.Предыдущий ответ предполагает гистограмму бианризатора, которая чувствительна к изменениям интенсивности фона.Известно, что фильтр Sauvola обладает хорошей устойчивостью к фоновым изменениям (и градиентам), но имеет более высокое время обработки.(Реализовано в нашем проекте OCR: http://sourceforge.net/projects/javaocr/, и вы можете увидеть его в действии в этом приложении: https://market.android.com/details?id=de.pribluda.android.ocrcall&feature=search_result)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...