中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中如何實現一個拍照翻譯小程序

發布時間:2022-04-11 16:27:21 來源:億速云 閱讀:248 作者:iii 欄目:編程語言

今天小編給大家分享一下Android中如何實現一個拍照翻譯小程序的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

1 開發準備

??由于使用了云側的服務,需要到華為的開發者聯盟注冊開發者賬號,并且在云端開通這些服務,這里就不細講了,直接按照官方的的AppGallery Connect配置、開通服務部分操作步驟進行即可:

   注冊開發者,開通服務參考請戳:

1.1 在項目級gradle里添加華為maven倉

打開AndroidStudio項目級build.gradle文件。
Android中如何實現一個拍照翻譯小程序??

增量添加如下maven地址:

buildscript {
    repositories {        
        maven {url 'http://developer.huawei.com/repo/'}
    }    }allprojects {
    repositories {       
        maven { url 'http://developer.huawei.com/repo/'}
    }
   }

1.2 在應用級的build.gradle里面加上SDK依賴

Android中如何實現一個拍照翻譯小程序

??集成SDK。(由于使用云側能力,只引入SDK基礎包即可)

dependencies{  
    implementation 'com.huawei.hms:ml-computer-vision:1.0.2.300'
    implementation 'com.huawei.hms:ml-computer-translate:1.0.2.300'
    }

1.3 在AndroidManifest.xml文件里面申請相機和存儲權限

??要使應用程序能夠在用戶從華為應用市場安裝您的應用程序后,自動將最新的機器學習模型更新到用戶設備,請將以下語句添加到該應用程序的AndroidManifest.xml文件中:

<manifest    
   <application  
       <meta-data                     
           android:name="com.huawei.hms.ml.DEPENDENCY"          
           android:value= "imgseg "/>                    
   </application>
</manifest>

1.4 在AndroidManifest.xml文件里面申請相機和存儲權限

<uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-feature android:name="android.hardware.camera" /><uses-feature android:name="android.hardware.camera.autofocus" />

2 代碼開發關鍵步驟

2.1 動態權限申請

private static final int CAMERA_PERMISSION_CODE = 1; @Override 
public void onCreate(Bundle savedInstanceState) { 
    // Checking camera permission   
   if (!allPermissionsGranted()) {
       getRuntimePermissions();
   }}

2.2 創建云側文本分析器。可以通過文本檢測配置器“MLRemoteTextSetting”創建文本分析器

MLRemoteTextSetting setting = (new MLRemoteTextSetting.Factory()).
         setTextDensityScene(MLRemoteTextSetting.OCR_LOOSE_SCENE).create();this.textAnalyzer = MLAnalyzerFactory.getInstance().getRemoteTextAnalyzer(setting);

2.3 通過android.graphics.Bitmap創建“MLFrame”對象用于分析器檢測圖片

MLFrame mlFrame = new MLFrame.Creator().setBitmap(this.originBitmap).create();

2.4  調用“asyncAnalyseFrame ”方法進行文本檢測

Task<MLText> task = this.textAnalyzer.asyncAnalyseFrame(mlFrame);
            task.addOnSuccessListener(new OnSuccessListener<MLText>() {
                @Override                public void onSuccess(MLText mlText) {
                    // Transacting logic for segment success.
                    if (mlText != null) {
                        RemoteTranslateActivity.this.remoteDetectSuccess(mlText);
                    } else {
                        RemoteTranslateActivity.this.displayFailure();
                    }
                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override                public void onFailure(Exception e) {
                    // Transacting logic for segment failure.
                    RemoteTranslateActivity.this.displayFailure();
                    return;
                }
            });

2.5 創建文本翻譯器。可以通過文本翻譯器自定義參數類“MLRemoteTranslateSetting”創建翻譯器

MLRemoteTranslateSetting.Factory factory = new MLRemoteTranslateSetting
                .Factory()
                // Set the target language code. The ISO 639-1 standard is used.
                .setTargetLangCode(this.dstLanguage);
        if (!this.srcLanguage.equals("AUTO")) {
            // Set the source language code. The ISO 639-1 standard is used.
            factory.setSourceLangCode(this.srcLanguage);
        }
        this.translator = MLTranslatorFactory.getInstance().getRemoteTranslator(factory.create());

2.6 調用“asyncAnalyseFrame ”方法對文本識別獲取的內容進行文本翻譯

final Task<String> task = translator.asyncTranslate(this.sourceText);
        task.addOnSuccessListener(new OnSuccessListener<String>() {
            @Override            public void onSuccess(String text) {
                if (text != null) {
                    RemoteTranslateActivity.this.remoteDisplaySuccess(text);
                } else {
                    RemoteTranslateActivity.this.displayFailure();
                }
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override            public void onFailure(Exception e) {
                RemoteTranslateActivity.this.displayFailure();
            }
        });

2.7 翻譯完成釋放資源

if (this.textAnalyzer != null) {
            try {
                this.textAnalyzer.close();
            } catch (IOException e) {
                SmartLog.e(RemoteTranslateActivity.TAG, "Stop analyzer failed: " + e.getMessage());
            }
        }
        if (this.translator != null) {
            this.translator.stop();
        }

以上就是“Android中如何實現一個拍照翻譯小程序”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

双鸭山市| 宿州市| 黄大仙区| 剑川县| 新竹县| 苏尼特右旗| 民县| 黄冈市| 随州市| 五莲县| 玉门市| 彭阳县| 吴旗县| 德清县| 兴海县| 井冈山市| 乡宁县| 常宁市| 呈贡县| 抚宁县| 邹平县| 阿瓦提县| 铁力市| 桂阳县| 临武县| 龙陵县| 三穗县| 灵武市| 神木县| 丰都县| 石首市| 宁阳县| 尤溪县| 安远县| 黑龙江省| 丰原市| 孟州市| 东光县| 萨迦县| 大埔县| 准格尔旗|