文档矫正功能

导入依赖

 // 引入基础SDK
    implementation 'com.huawei.hms:ml-computer-vision-documentskew:3.5.0.301'
    // 引入文档检测/校正模型包
    implementation 'com.huawei.hms:ml-computer-vision-documentskew-model:3.5.0.301'

代码

 //文档矫正
    public void imgRevise(){
        //创建文本框检测侧、矫正分析器
        MLDocumentSkewCorrectionAnalyzerSetting setting=new MLDocumentSkewCorrectionAnalyzerSetting.Factory().create();
        MLDocumentSkewCorrectionAnalyzer analyzer= MLDocumentSkewCorrectionAnalyzerFactory.getInstance().getDocumentSkewCorrectionAnalyzer(setting);
        //通过android.graphics.Bitmap创建MLFrame对象用于分析器检测图片
        Bitmap bitmap=BitmapFactory.decodeResource(this.getResources(),R.drawable.ccc);
        MLFrame frame=MLFrame.fromBitmap(bitmap);
        //asyncDocumentSkewDetect异步调用。
        analyzer.asyncDocumentSkewDetect(frame).addOnSuccessListener(new OnSuccessListener<MLDocumentSkewDetectResult>() {
            @Override
            public void onSuccess(MLDocumentSkewDetectResult mlDocumentSkewDetectResult) {
                //MLDocumentSkewDetectResult文本框检测结果。
                Point leftTop = mlDocumentSkewDetectResult.getLeftTopPosition();
                Point rightTop = mlDocumentSkewDetectResult.getRightTopPosition();
                Point leftBottom = mlDocumentSkewDetectResult.getLeftBottomPosition();
                Point rightBottom = mlDocumentSkewDetectResult.getRightBottomPosition();
                List<Point> coordinates = new ArrayList<>();
                coordinates.add(leftTop);
                coordinates.add(rightTop);
                coordinates.add(rightBottom);
                coordinates.add(leftBottom);
                MLDocumentSkewCorrectionCoordinateInput coordinateData = new MLDocumentSkewCorrectionCoordinateInput(coordinates);
                //coordinateData校正结果
                //MLDocumentSkewCorrectionCoordinateInput 文本框校正坐标信息输入。
                Log.i(TAG, "onSuccess: 顶点坐标" + coordinateData.getPoints().toString());
                //操作图片
                analyzer.asyncDocumentSkewCorrect(frame,coordinateData).addOnSuccessListener(new OnSuccessListener<MLDocumentSkewCorrectionResult>() {
                    @Override
                    public void onSuccess(MLDocumentSkewCorrectionResult mlDocumentSkewCorrectionResult) {
                        Log.i(TAG, "onSuccess: 校正成功!!");
                        image.setImageBitmap(mlDocumentSkewCorrectionResult.getCorrected());
                    }
                }).addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(Exception e) {
                        Log.i(TAG, "onFailure: 矫正失败" + e.getMessage());
                    }
                });
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(Exception e) {
                Log.i(TAG, "onFailure: " + e.getMessage());
            }
        });

    }

页面

 <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
 <Button
        android:id="@+id/bt_9"
        android:text="文档校正"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

后台

 private ImageView image;
 private Button bt9;


image = findViewById(R.id.image);
        bt9=findViewById(R.id.bt_9);
        bt9.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                imgRevise();
            }
        });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值