一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - Android Zxing 轉換豎屏掃描且提高識別率的方法

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

2022-02-20 15:29夜的那種黑丶 Android

本篇文章主要介紹了Android Zxing 轉換豎屏掃描且提高識別率的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

轉豎屏步驟:

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

?
1
android:screenOrientation="portrait"

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

?
1
2
3
4
5
//豎屏
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之前添加

?
1
theCamera.setDisplayOrientation(90);

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

?
1
2
3
4
5
6
7
8
9
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 #11
width = height;
height = tmp;
data = rotatedData;

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

識別率優化:

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

?
1
2
3
4
5
6
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來提高精度。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/fx-blog/p/9037937.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 毛片免费观看 | 亚洲另类激情 | 国产99在线| 波多野给衣一区二区三区 | 全黄h全肉细节文在线观看 全彩成人18h漫画 | 亚洲欧洲日产国码 最新 | 欧美午夜寂寞影院安卓列表 | 亚洲高清在线天堂精品 | a v在线男人的天堂观看免费 | 操碰97| 国产啪精品视频网给免丝袜 | 4444www免费看 | 四虎影院在线免费播放 | 亚洲国产精品网 | 黑人女性猛交xxxxxⅹxx | 亚洲国产精品嫩草影院久久 | 亚洲欧美日韩天堂 | 国产不卡视频一区二区在线观看 | 日韩 欧美 国产 亚洲 中文 | 国产精品亚洲专区在线播放 | 久久r视频 | 久久精品一区二区免费看 | 俄罗斯年轻男同gay69 | 亚洲精品乱码久久久久久蜜桃 | 东北恋哥在线播放免费播放 | 日本剧情片在线播放中文版 | 波多野结衣久久国产精品 | 国产偷啪 | 国产视频一区二区 | jiujiure精品| 91麻豆精品激情在线观看最新 | 贰佰麻豆剧果冻传媒一二三区 | 天天排行网 | 日韩欧美推理片免费看完整版 | 99九九成人免费视频精品 | 午夜爽喷水无码成人18禁三级 | 国产成人精品一区二区阿娇陈冠希 | 成人嗯啊视频在线观看 | 国内揄拍国内精品久久 | 2020中文字幕| 精品一区在线 |