zoukankan      html  css  js  c++  java
  • 腾讯云OCR图片文字识别

    一、 OCR

    OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;
    
    -- 来自百度
    

    二、腾讯云OCR

    基于腾讯自研的深度学习技术和海量的数据,提供卡证、票据类印刷体和手写体、自定义模板等多种场景和类型的文字识别服务。
    

    三、接口对接

    说明:基于 spring boot 的接口对接

    1、添加开发的SDK

    <dependency>
      <groupId>com.qcloud</groupId>
      <artifactId>qcloud-image-sdk</artifactId>
      <version>2.3.6</version>
    </dependency>
    

    2、编写工具类

    注意:此接口对接版本有点低,现在的sdk是2.0了,不过这个工具类是可以正常食用的。2.0的sdk可以官方给出的文档 传送门

    import com.qcloud.image.ImageClient;
    import com.qcloud.image.exception.AbstractImageException;
    import com.qcloud.image.request.*;
    import java.io.File;
    
    /**
     * 腾讯云Ocr文字识别
     *
     * @author lixingwu
     */
    public class OcrUtil {
        /*配置参数为空,请自行填写*/
        private static final String APP_ID = "";
        private static final String SECRET_ID = "";
        private static final String SECRET_KEY = "";
        private static final String BUCKET_NAME = "";
        private static final ImageClient IMAGECLIENT = new ImageClient(APP_ID, SECRET_ID, SECRET_KEY, ImageClient.NEW_DOMAIN_recognition_image_myqcloud_com);
    
        /**
         * 方法描述:识别身份证URL方式.
         * 创建时间:2018-12-19 11:54:36
         *
         * @param url      图片地址
         * @param cardType 0正面,1反面
         * @return the string
         * @author "lixingwu"
         */
        public static String ocrIdCardUrl(String url, Integer cardType) {
            String ret = null;
            String[] idcardUrlList = new String[]{url};
            IdcardDetectRequest idReq = new IdcardDetectRequest(BUCKET_NAME, idcardUrlList, cardType);
            try {
                ret = IMAGECLIENT.idcardDetect(idReq);
            } catch (AbstractImageException e) {
                e.printStackTrace();
            }
            return ret;
        }
    
        /**
         * 方法描述:识别身份证path方式.
         * 创建时间:2018-12-19 11:54:36
         *
         * @param path     图片路径
         * @param cardType 0正面,1反面
         * @return the string
         * @author "lixingwu"
         */
        public static String ocrIdCardPath(String path, Integer cardType) {
            String ret = null;
            File[] idcardUrlList = new File[]{new File(path)};
            IdcardDetectRequest idReq = new IdcardDetectRequest(BUCKET_NAME, idcardUrlList, cardType);
            try {
                ret = IMAGECLIENT.idcardDetect(idReq);
            } catch (AbstractImageException e) {
                e.printStackTrace();
            }
            return ret;
        }
    
        /**
         * 方法描述:驾驶证识别URL方式.
         * 创建时间:2018-12-19 12:52:27
         *
         * @param url 图片地址
         * @return the string
         * @author "lixingwu"
         */
        public static String ocrDrivingLicenceUrl(String url) {
            String ret = null;
            OcrDrivingLicenceRequest request = new OcrDrivingLicenceRequest(BUCKET_NAME, OcrDrivingLicenceRequest.TYPE_DRIVER_LICENSE, url);
            try {
                ret = IMAGECLIENT.ocrDrivingLicence(request);
            } catch (AbstractImageException e) {
                e.printStackTrace();
            }
            return ret;
        }
    
        /**
         * 方法描述:驾驶证识别path方式.
         * 创建时间:2018-12-19 12:52:27
         *
         * @param path 图片路径
         * @return the string
         * @author "lixingwu"
         */
        public static String ocrDrivingLicencePath(String path) {
            String ret = null;
            File file = new File(path);
            OcrDrivingLicenceRequest request = new OcrDrivingLicenceRequest(BUCKET_NAME, OcrDrivingLicenceRequest.TYPE_DRIVER_LICENSE, file);
            try {
                ret = IMAGECLIENT.ocrDrivingLicence(request);
            } catch (AbstractImageException e) {
                e.printStackTrace();
            }
            return ret;
        }
    
        /**
         * 方法描述:行驶证识别URL方式.
         * 创建时间:2018-12-19 12:52:27
         *
         * @param url 图片地址
         * @return the string
         * @author "lixingwu"
         */
        public static String ocrVehicleLicenceUrl(String url) {
            String ret = null;
            OcrDrivingLicenceRequest request = new OcrDrivingLicenceRequest(BUCKET_NAME, OcrDrivingLicenceRequest.TYPE_VEHICLE_LICENSE, url);
            try {
                ret = IMAGECLIENT.ocrDrivingLicence(request);
            } catch (AbstractImageException e) {
                e.printStackTrace();
            }
            return ret;
        }
    
        /**
         * 方法描述:行驶证识别path方式.
         * 创建时间:2018-12-19 12:52:27
         *
         * @param path 图片路径
         * @return the string
         * @author "lixingwu"
         */
        public static String ocrVehicleLicencePath(String path) {
            String ret = null;
            File file = new File(path);
            OcrDrivingLicenceRequest request = new OcrDrivingLicenceRequest(BUCKET_NAME, OcrDrivingLicenceRequest.TYPE_VEHICLE_LICENSE, file);
            try {
                ret = IMAGECLIENT.ocrDrivingLicence(request);
            } catch (AbstractImageException e) {
                e.printStackTrace();
            }
            return ret;
        }
    
        /**
         * 方法描述:车牌识别URL方式.
         * 创建时间:2018-12-19 12:52:27
         *
         * @param url 图片地址
         * @return the string
         * @author "lixingwu"
         */
        public static String ocrPlateUrl(String url) {
            String ret = null;
            OcrPlateRequest request = new OcrPlateRequest(BUCKET_NAME, url);
            try {
                ret = IMAGECLIENT.ocrPlate(request);
            } catch (AbstractImageException e) {
                e.printStackTrace();
            }
            return ret;
        }
    
        /**
         * 方法描述:车牌识别path方式.
         * 创建时间:2018-12-19 12:52:27
         *
         * @param path 图片路径
         * @return the string
         * @author "lixingwu"
         */
        public static String ocrPlatePath(String path) {
            String ret = null;
            File file = new File(path);
            OcrPlateRequest request = new OcrPlateRequest(BUCKET_NAME, file);
            try {
                ret = IMAGECLIENT.ocrPlate(request);
            } catch (AbstractImageException e) {
                e.printStackTrace();
            }
            return ret;
        }
    
        /**
         * 方法描述:营业执照识别URL方式.
         * 创建时间:2018-12-19 12:52:27
         *
         * @param url 图片地址
         * @return the string
         * @author "lixingwu"
         */
        public static String ocrBizLicenseUrl(String url) {
            String ret = null;
            OcrBizLicenseRequest request = new OcrBizLicenseRequest(BUCKET_NAME, url);
            try {
                ret = IMAGECLIENT.ocrBizLicense(request);
            } catch (AbstractImageException e) {
                e.printStackTrace();
            }
            return ret;
        }
    
        /**
         * 方法描述:营业执照识别path方式.
         * 创建时间:2018-12-19 12:52:27
         *
         * @param path 图片路径
         * @return the string
         * @author "lixingwu"
         */
        public static String ocrBizLicensePath(String path) {
            String ret = null;
            File file = new File(path);
            OcrBizLicenseRequest request = new OcrBizLicenseRequest(BUCKET_NAME, file);
            try {
                ret = IMAGECLIENT.ocrBizLicense(request);
            } catch (AbstractImageException e) {
                e.printStackTrace();
            }
            return ret;
        }
    
        /**
         * 方法描述:银行卡识别URL方式.
         * 创建时间:2018-12-19 12:52:27
         *
         * @param url 图片地址
         * @return the string
         * @author "lixingwu"
         */
        public static String ocrBankCardUrl(String url) {
            String ret = null;
            OcrBankCardRequest request = new OcrBankCardRequest(BUCKET_NAME, url);
            try {
                ret = IMAGECLIENT.ocrBankCard(request);
            } catch (AbstractImageException e) {
                e.printStackTrace();
            }
            return ret;
        }
    
        /**
         * 方法描述:银行卡识别path方式.
         * 创建时间:2018-12-19 12:52:27
         *
         * @param path 图片路径
         * @return the string
         * @author "lixingwu"
         */
        public static String ocrBankCardPath(String path) {
            String ret = null;
            File file = new File(path);
            OcrBankCardRequest request = new OcrBankCardRequest(BUCKET_NAME, file);
            try {
                ret = IMAGECLIENT.ocrBankCard(request);
            } catch (AbstractImageException e) {
                e.printStackTrace();
            }
            return ret;
        }
    
        /**
         * 方法描述:通用印刷体识别URL方式.
         * 创建时间:2018-12-19 12:52:27
         *
         * @param url 图片地址
         * @return the string
         * @author "lixingwu"
         */
        public static String ocrGeneralUrl(String url) {
            String ret = null;
            GeneralOcrRequest request = new GeneralOcrRequest(BUCKET_NAME, url);
            try {
                ret = IMAGECLIENT.generalOcr(request);
            } catch (AbstractImageException e) {
                e.printStackTrace();
            }
            return ret;
        }
    
        /**
         * 方法描述:通用印刷体识别URL方式.
         * 创建时间:2018-12-19 12:52:27
         *
         * @param path 图片路径
         * @return the string
         * @author "lixingwu"
         */
        public static String ocrGeneralPath(String path) {
            String ret = null;
            File file = new File(path);
            GeneralOcrRequest request = new GeneralOcrRequest(BUCKET_NAME, file);
            try {
                ret = IMAGECLIENT.generalOcr(request);
            } catch (AbstractImageException e) {
                e.printStackTrace();
            }
            return ret;
        }
    }
    
    

    3、天气太热了

    上面的工具类只是简单的说了一下,如果项目需要用到,得自己去测试,等我那天心情好了再说详细了点。

  • 相关阅读:
    参考 ZTree 加载大数据量。加载慢问题解析
    script标签中type为<script type="text/x-template">是个啥
    最全的常用正则表达式大全
    利用split
    Lucene4.4.0 开发之排序
    scrollWidth,clientWidth,offsetWidth的区别
    JavaScript SetInterval与setTimeout使用方法详解
    JS实现悬浮移动窗口(悬浮广告)的特效
    $.ajax()方法详解
    DB2导入导出编目配置
  • 原文地址:https://www.cnblogs.com/lixingwu/p/10889541.html
Copyright © 2011-2022 走看看