国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android Zxing 轉換豎屏掃描且提高識別率的方法

2019-10-22 18:11:19
字體:
來源:轉載
供稿:網友

最近的一個Android需要用到掃碼功能,用的是Zxing開源庫。Zxing的集成就不說了,但是Zxing默認的是橫屏掃碼,在實際生產中并不適用,需要改為豎屏掃描。

轉豎屏步驟:

1>. AndroidManifest.xml中把activity標簽CaptureActivity部分的screenOrientation改為portrait。

android:screenOrientation="portrait"

2>. CameraManager類中的getFramingRectInPreview()方法,將left, right, top, bottom改變。

//豎屏rect.left = rect.left * cameraResolution.y / screenResolution.x;rect.right = rect.right * cameraResolution.y / screenResolution.x;rect.top = rect.top * cameraResolution.x / screenResolution.y;rect.bottom = rect.bottom * cameraResolution.x / screenResolution.y;

3>. CameraConfigurationManager類中的setDesiredCameraParameters(OpenCamera camera, boolean safeMode)方法,在setParameters之前添加

theCamera.setDisplayOrientation(90);

4>. DecodeHandler類中的decode(byte[] data, int width, int height)方法,在PlanarYUVLuminanceSource source = activity.getCameraManager().buildLuminanceSource(data, width, height)之前添加

byte[] rotatedData = new byte[data.length];for (int y = 0; y < height; y++) {for (int x = 0; x < width; x++)  rotatedData[x * height + height - y - 1] = data[x + y * width];}int tmp = width; // Here we are swapping, that's the difference to #11width = height;height = tmp;data = rotatedData;

此時,豎屏掃描已經可以實現了,但是掃描復雜的圖碼時,分辨率低的已經分不清紋理了,很難識別出來,所以需要優化識別率。

識別率優化:

1>. CameraConfigurationUtils類中的findBestPreviewSizeValue(Camera.Parameters parameters, Point screenResolution)方法,將double screenAspectRatio = screenResolution.x / (double) screenResolution.y改為

double screenAspectRatio;if (screenResolution.x > screenResolution.y) {  screenAspectRatio = (double) screenResolution.x / (double) screenResolution.y;} else {  screenAspectRatio = (double) screenResolution.y / (double) screenResolution.x;}

2>. 至此,識別率已經很大程度上的提高了,若在要提高識別率,可通過修改CameraManager類中的MAX_FRAME_WIDTH和MAX_FRAME_HEIGHT來提高精度。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青阳县| 黑龙江省| 广河县| 固镇县| 平山县| 邢台市| 昌平区| 五大连池市| 武乡县| 开阳县| 宝鸡市| 英吉沙县| 开化县| 柳林县| 天峻县| 河北省| 西畴县| 太康县| 克山县| 桐庐县| 湘潭市| 沙河市| 秀山| 兴城市| 玉山县| 高尔夫| 丰台区| 扶余县| 常宁市| 望都县| 洛南县| 当阳市| 新邵县| 鄯善县| 龙陵县| 崇阳县| 晋城| 沾益县| 神木县| 澄城县| 镇宁|