我必須掃描類似於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