我必须扫描类似于this之类的数据矩阵。
代码为白色/浅灰色,但背景根据相机(角度),光线的位置反映不同的颜色。 在哪里可以正确编辑在Android Zxing中捕获的图像?
在处理之前是否有任何可能的调整使图像变黑:Android ZXing图像处理
任何想法都会很棒。
我必须扫描类似于this之类的数据矩阵。
代码为白色/浅灰色,但背景根据相机(角度),光线的位置反映不同的颜色。 在哪里可以正确编辑在Android Zxing中捕获的图像?
在处理之前是否有任何可能的调整使图像变黑:Android ZXing图像处理
任何想法都会很棒。
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();
也看看这个类:
http://zxing.org/w/docs/javadoc/com/google/zxing/common/HybridBinarizer.html
也许你正在使用默认GlobalHistogramBinarizer
,这是更快,但不工作与梯度这么好。
我使用:'PlanarYUVLuminanceSource source = CameraManager.get()。buildLuminanceSource(data,width,height); BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));'所以** HybridBinarizer **。 – Daniel
看来您在识别之前需要一些图像处理。以前的答案建议直方图bianrizer,这是对背景强度变化敏感。已知Sauvola滤波器对背景变化(和梯度)具有良好的耐受性,但处理时间较长。 (在我们的OCR项目中实施:http://sourceforge.net/projects/javaocr/,您可以在此应用程序中看到它在行动 :https://market.android.com/details?id=de.pribluda.android.ocrcall&feature=search_result)
这将在Capture Activity? – Daniel
mmmm我明白了。这段代码会创建黑白图片吗? –
我想在解码之前处理图像。有更好的方法吗? – Daniel