精华内容
下载资源
问答
  • 如何在图片中提取文字信息
    千次阅读
    2021-02-26 17:11:38

    package org.fh.util;

    import org.json.JSONObject;

    import java.io.BufferedReader;

    import java.io.InputStreamReader;

    import java.net.HttpURLConnection;

    import java.net.URL;

    import java.util.List;

    import java.util.Map;

    /**

    * 说明:获取文字识别token类

    * from:www.fhadmin.org

    */

    public class AuthTextService {

    /**

    * 获取权限token

    * @return 返回示例:

    * {

    * "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",

    * "expires_in": 2592000

    * }

    */

    public static String getAuth() {

    // 官网获取的 API Key 更新为你注册的

    String clientId = "xxxxx;

    // 官网获取的 Secret Key 更新为你注册的

    String clientSecret = "xxxxx";

    return getAuth(clientId, clientSecret);

    }

    /**

    * 获取API访问token

    * 该token有一定的有效期,需要自行管理,当失效时需重新获取.

    * @param ak - 百度云官网获取的 API Key

    * @param sk - 百度云官网获取的 Securet Key

    * @return assess_token 示例:

    * "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"

    */

    public static String getAuth(String ak, String sk) {

    // 获取token地址

    String authHost = "https://aip.baidubce.com/oauth/2.0/token?";

    String getAccessTokenUrl = authHost

    // 1. grant_type为固定参数

    + "grant_type=client_credentials"

    // 2. 官网获取的 API Key

    + "&client_id=" + ak

    // 3. 官网获取的 Secret Key

    + "&client_secret=" + sk;

    try {

    URL realUrl = new URL(getAccessTokenUrl);

    // 打开和URL之间的连接

    HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();

    connection.setRequestMethod("GET");

    connection.connect();

    // 获取所有响应头字段

    Map> map = connection.getHeaderFields();

    // 遍历所有的响应头字段

    for (String key : map.keySet()) {

    System.err.println(key + "--->" + map.get(key));

    }

    // 定义 BufferedReader输入流来读取URL的响应

    BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

    String result = "";

    String line;

    while ((line = in.readLine()) != null) {

    result += line;

    }

    /**

    * 返回结果示例

    */

    System.err.println("result:" + result);

    JSONObject jsonObject = new JSONObject(result);

    String access_token = jsonObject.getString("access_token");

    return access_token;

    } catch (Exception e) {

    System.err.printf("获取token失败!");

    e.printStackTrace(System.err);

    }

    return null;

    }

    }

    package org.fh.util;

    import java.net.URLEncoder;

    import net.sf.json.JSONArray;

    import net.sf.json.JSONObject;

    /**

    * 说明:手写文字识别

    * from:www.fhadmin.org

    */

    public class Handwriting {

    /**

    * @param imgBase64Str

    * @param accessToken

    * @return

    */

    public static String handwriting(String imgBase64Str, String accessToken) {

    String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/handwriting"; //请求url

    try {

    String imgParam = URLEncoder.encode(imgBase64Str, "UTF-8");

    String param = "image=" + imgParam;

    String result = HttpUtil.post(url, accessToken, param);

    JSONObject jsonMsg = JSONObject.fromObject(result);

    int words_result_num = Integer.parseInt(jsonMsg.getString("words_result_num"));//识别结果数,表示words_result的元素个数

    if(words_result_num > 0) {

    StringBuffer strb = new StringBuffer();

    JSONArray jsonArray= jsonMsg.getJSONArray("words_result");

    for(int i=0;i

    JSONObject object = jsonArray.getJSONObject(i);

    String words = object.getString("words");

    strb.append(words);

    strb.append("\r\n");

    }

    result = strb.toString();

    }else {

    result = "null";

    }

    return result;

    } catch (Exception e) {

    e.printStackTrace();

    }

    return null;

    }

    }

    更多相关内容
  • java图片提取文字信息java图片提取文字信息java图片提取文字信息
  • 利用python提取图片中文字,代码精简,文档齐全
  • 实用方便简单,可实现对指定的图片中文字进行提取,速度很快,很方便.
  • 1、双击“天若OCR文字识别.exe”可执行程序,会有一个小图标出现左下角任务栏; 2、鼠标放到小图标上会提示“上级开始截图识别”,然后双击该图标,即可选择区域进行OCR识别
  • C#图片识别 pdf转图片图片内容进行识别 提取图片信息
  • 如何提取图片中文字
  • 凡眼 文字识别工具用于多用途文字识别和提取,陆续丰富多种识别功能,酌情添加大平台识别通道支持,酌情考虑增加翻译功能等。 使用过程发现任何bug、有任何改进建议、有需要功能扩展或定制,欢迎反馈留言告知...
  • 利用vc++6.0提取图像文字
  • OCR提取图片中文字.exe

    2021-08-19 11:04:02
    图片提取文字工具,非常实用
  • OCR图片文字提取工具

    2018-09-05 16:39:35
    这是一款面向电脑端的图片文字识别提取软件,运用OCR技术,可以解决图片文字提取、网站文字不能复制时的提取、只想提取区域内一部分文字、日常白领编辑等场景。
  • 图片文字提取的技术与算法研究——图片文字提取的技术与算法研究——图片文字提取的技术与算法研究——图片文字提取的技术与算法研究
  • 图片文字提取工具

    2018-01-18 00:10:01
    图片上的文字提取出转化为可编辑文档,大大方便了文件处理的速度,非常便利!
  • python识别提取图片中指定位置的文字,并修改文件名为改文字,方便批量操修改文件名,其中使用了pyqt5作为程序的界面,识别图片使用了Tesseract-OCR技术,压缩包附带源代码,方便大家学习。
  • Python提取图片中文字信息

    千次阅读 2021-03-22 22:50:11
    Python提取图片中文字信息 使用的Python库 Python tesseract是Python的一个光学字符识别(OCR)工具。也就是说,它将识别并“读取”嵌入图像的文本。 Python tesseract是Google tesseract OCR引擎的包装器。它还...

    Python提取图片中的文字信息

    使用的Python库

    Python tesseractPython的一个光学字符识别(OCR)工具。也就是说,它将识别并“读取”嵌入图像中的文本。

    Python tesseractGoogle tesseract OCR引擎的包装器。它还可用作tesseract的独立调用脚本,因为它可以读取PillowLeptonica图像库支持的所有图像类型,包括jpeg、png、gif、bmp、tiff等。此外,如果用作脚本,Python tesseract将打印识别的文本,而不是将其写入文件。

    程序如下

    import pytesseract
    from PIL import Image
    
    print(pytesseract.image_to_string(Image.open('./1A2737EC36534A6636E062FF17838D99.jpg'), lang='chi_sim'))
    

    安装识别引擎tesseract-ocr

    如果有以下报错:
    在这里插入图片描述
    则还需要安装识别引擎tesseract-ocr
    网上下载安装包,然后直接点击安装即可
    因为tesseract-ocr默认不支持中文识别,所以解压安装tesseract-ocr后还需下载对应的语言包
    在这里插入图片描述
    安装完成tesseract-ocr后,我们还需配置一下
    C:\Users\ASUS\AppData\Local\Programs\Python\Python38\Lib\site-packages\pytesseract中找到pytesseract.py
    打开后做如下操作:

    # tesseract_cmd = 'tesseract'
    tesseract_cmd = 'D:/Tesseract-OCR/tesseract.exe'
    

    环境变量设置

    根据这个教程设置环境变量
    接下来便可以使用程序来进行文字识别提取

    展开全文
  • 如何使用图片文字提取大师提取图片中文字.docx
  • 凡眼 文字识别工具用于多用途文字识别和提取,陆续丰富多种识别功能,酌情添加大平台识别通道支持,酌情考虑增加翻译功能等。 使用过程发现任何bug、有任何改进建议、有需要功能扩展或定制,欢迎反馈留言告知...
  • 凡眼 文字识别工具用于多用途文字识别和提取,陆续丰富多种识别功能,酌情添加大平台识别通道支持,酌情考虑增加翻译功能等。 使用过程发现任何bug、有任何改进建议、有需要功能扩展或定制,欢迎反馈留言告知...
  • 在图片中提取文字的工具

    热门讨论 2010-10-02 21:58:21
    本软件是一款免费Ocr软件,主要用于识别图像文件之,出现 的汉字显示字体。Ocr的中文含意是光学字符识别。 为什么叫Mini呢?因为现有的识别汉字的商业Ocr软件,动辄二三十兆,而本软件解 压后,也不过三兆多,身材...
  • 友益ocr提取图片文字转文本工具 当对一个纸质文件进行扫描后,以图片形式保存,如果需要对进行修改编辑,则需要重新输入或把图片格式转换为文本格式。这时就需要用OCR技术,提取图片上的文字。"友益ocr提取图片文字...
  • 很好的方法, 建议大家试试
  • 免费图片文字识别,图片文字提取工具 直接划图识别,方便快捷。超级好用。完全免费,没有任何限制。识别快速准确,傻瓜式操作。
  • python图片提取文字

    千次阅读 2022-02-28 22:02:59
    文章目录一、前期准备二、代码 一、前期准备 需要先下载 tesseract-ocr-w...可以提取视频的文本,其他的一般。 二、代码 注释代码如下: """ 增加图片处理库PIL pip install Pillow 增加OCR识别库 pip install pyte


    一、前期准备

    需要先下载 tesseract-ocr-w64-setup-v5.0.1.20220118 ,官网下载即可,尽量用最新的版本,旧版本识别率很低并且解压后不能自动下载相关内容。解压后路径需要替换下文C:\Program Files\Tesseract-OCR\tesseract.exe。可以提取视频中的文本,其他的一般。

    二、代码

    注释代码如下:

    """
    增加图片处理库PIL
    pip install Pillow
    增加OCR识别库
    pip install pytesseract
    """
    #图库引用
    from PIL import Image
    #识别库引用
    import pytesseract as pt
    #图形界面引用
    import tkinter as tk
    #路径引用
    import tkinter.filedialog as filedialog
    #方法
    class Application(tk.Tk):
        
        def __init__(self):
            super().__init__()
            self.title("图片文本提取")
    
            # r"" 的作用是去除转义字符
            pt.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
            #路径变量
            self.img_path = tk.StringVar()
            #布局
            self.frame = tk.Frame(self)
            self.frame.pack(padx=10, pady=10)
            #标签
            self.lbl_file = tk.Label(self.frame, text="图像")
            self.lbl_file.grid(row=0, column=0)
            #输入框布局
            self.txt_file = tk.Entry(self.frame, width=60, textvariable=self.img_path)
            self.txt_file.grid(row=0, column=1, sticky=tk.W)
            #button形式以及布局
            self.btn_file = tk.Button(self.frame, text="选择", command=self.sel_img_file)
            self.btn_file.grid(row=0, column=1, sticky=tk.E)
            #同上
            self.lbl_txt = tk.Label(self.frame, text="文本")
            self.lbl_txt.grid(row=1, column=0)        
            self.txt_exract = tk.Text(self.frame)
            self.txt_exract.grid(row=1, column=1)        
            self.btn_extract = tk.Button(self.frame, text="提取文本", command=self.extract_text)
            self.btn_extract.grid(row=2, column=1, sticky=tk.W+tk.E)        
            
        def sel_img_file(self):
            self.img_path.set(filedialog.askopenfilename(title="选择图片", initialdir="."))
    
        def extract_text(self):
            if self.img_path:
                img = Image.open(self.img_path.get())
                text = pt.image_to_string(img, lang="chi_sim")
                self.txt_exract.delete(1.0, tk.END)
                self.txt_exract.insert(tk.END, text)
    
    if __name__ == "__main__":
        app = Application()
        app.mainloop()
    
    
    展开全文
  • python图像识别一般基础到的就是tesseract了,爬虫处理验证码广泛使用。 安装 安装教程网上大都差不多,Windows下确实比较麻烦,涉及到各种路径、环境变量甚至与linux不同的路径分隔符,所以这里的安装是基于...
  • 这个文字识别接口里不仅仅有通用文字识别功能,还支持很多其他功能:比如身份证、驾驶证、保险单、手写文本、火车...还支持用户自定义识别模板,指定需要识别的关键字段,实现用户特定格式图片的自动识别和结构化提取

    1. 前言

    平时工作中编写开发技术文档,或者学生在编写论文时,经常会上网搜索一些参考文献、文档。

    比如: 上网搜索相似的内容参考一下或者引用别人的一段文字,有时候看到一篇较好的内容想要保存等等。

    这个过程中会发现,很多网站的提供的页面都是不能复制粘贴的,或者直接是图片形式提供,为了方便能获取这些文字,当前就利用华为云提供的 通用文字识别接口,识别图片里的文本内容,方便复制文字。这个功能QQ上也集成了,使用很方便,这里利用华为云的接口实现一个与QQ类似的功能,截图之后识别图片里包含的文本内容。

    这个文字识别接口里不仅仅有通用文字识别功能,还支持很多其他功能:比如身份证、驾驶证、保险单、手写文本、火车票,行驶证…等等功能。还支持用户自定义识别模板,指定需要识别的关键字段,实现用户特定格式图片的自动识别和结构化提取。

    image-20220214142233066

    2. 文本识别接口使用介绍

    2.1 开通服务

    地址: https://console.huaweicloud.com/ocr/?region=cn-north-4#/ocr/overview

    image-20220214142605756

    这个文字识别服务是按调用次数计费的,每个用户每月有1000次的免费调用次数,开通服务后就可以使用。

    2.2 接口地址

    官网帮助文档: https://support.huaweicloud.com/api-ocr/ocr_03_0042.html

    POST https://{endpoint}/v2/{project_id}/ocr/general-text
    
    示例:
    https://ocr.cn-north-4.myhuaweicloud.com/v2/0e5957be8a00f53c2fa7c0045e4d8fbf/ocr/general-text
    
    请求头:
    {
     "X-Auth-Token": "******",
     "Content-Type": "application/json;charset=UTF-8"
    }
    
    请求体:
    {
     "image": ----这是图片的bas64编码
    }
    
    响应结果:
    {
     "result": {
      "words_block_count": 13,
      "words_block_list": [
       {
        "words": "撤,还是不撤?",
        "location": [
         [
          43,
          39
         ],
         [
          161,
          39
         ],
         [
          161,
          60
         ],
         [
          43,
          60
         ]
        ]
       },
       {
        "words": "让我更骄傲的是公司在大灾面前的表现。",
        "location": [
         [
          72,
          95
         ],
         [
          332,
          95
         ],
         [
          332,
          113
         ],
         [
          72,
          113
         ]
        ]
       },
       {
        "words": "2011年3月11日14时46分,日本东北部海域发生里氏9.0级",
        "location": [
         [
          71,
          122
         ],
         [
          482,
          122
         ],
         [
          482,
          142
         ],
         [
          71,
          142
         ]
        ]
       },
       {
        "words": "地震并引发海啸。那一刻,我们正在距离东京100公里的热海开会,",
        "location": [
         [
          41,
          149
         ],
         [
          481,
          149
         ],
         [
          481,
          171
         ],
         [
          41,
          171
         ]
        ]
       },
       {
        "words": "感觉“咚”",
        "location": [
         [
          42,
          180
         ],
         [
          114,
          180
         ],
         [
          114,
          199
         ],
         [
          42,
          199
         ]
        ]
       },
       {
        "words": "地被震了一下。面对地震,",
        "location": [
         [
          115,
          178
         ],
         [
          296,
          178
         ],
         [
          296,
          199
         ],
         [
          115,
          199
         ]
        ]
       },
       {
        "words": "大家都很镇定,",
        "location": [
         [
          300,
          179
         ],
         [
          400,
          179
         ],
         [
          400,
          197
         ],
         [
          300,
          197
         ]
        ]
       },
       {
        "words": "直到看到电",
        "location": [
         [
          405,
          179
         ],
         [
          483,
          179
         ],
         [
          483,
          196
         ],
         [
          405,
          196
         ]
        ]
       },
       {
        "words": "视上触目惊心的画面:15时 25 分,海啸到达陆前高田市海岸;15时",
        "location": [
         [
          41,
          206
         ],
         [
          485,
          206
         ],
         [
          485,
          228
         ],
         [
          41,
          228
         ]
        ]
       },
       {
        "words": "26分,海啸到达陆前高田市中心;15时43分,陆前高田市依稀只能",
        "location": [
         [
          40,
          234
         ],
         [
          486,
          234
         ],
         [
          486,
          258
         ],
         [
          40,
          258
         ]
        ]
       },
       {
        "words": "看到四层高的市府大楼的屋顶,一瞬间,城镇就变成了汪洋……对",
        "location": [
         [
          40,
          262
         ],
         [
          487,
          262
         ],
         [
          487,
          287
         ],
         [
          40,
          287
         ]
        ]
       },
       {
        "words": "我来说,地震跟家常便饭一样,可眼前的灾难比以往任何一次都要",
        "location": [
         [
          40,
          292
         ],
         [
          487,
          292
         ],
         [
          487,
          317
         ],
         [
          40,
          317
         ]
        ]
       },
       {
        "words": "惨烈,完全超出了我的预期。",
        "location": [
         [
          41,
          326
         ],
         [
          231,
          326
         ],
         [
          231,
          345
         ],
         [
          41,
          345
         ]
        ]
       }
      ],
      "direction": -1
     }
    }
    

    在请求参数里的X-Auth-Token参数比较重要,调用华为云的任何API接口都需要这个参数,获取方式可以看前面的文章。比如这篇文章: https://support.huaweicloud.com/api-ocr/ocr_03_0005.html

    2.3 在线调试接口

    地址: https://apiexplorer.developer.huaweicloud.com/apiexplorer/debug?product=OCR&api=RecognizeGeneralText

    使用调试接口想体验识别效果,图片的数据支持base64编码、http网络图片地址传入,测试非常方便。

    关于获取图片base64编码的方式,在文档里也有介绍,直接通过浏览器获取。

    image-20220214144146775

    image-20220214143945486

    3. 实现代码

    代码采用QT编写的,请求API接口实现调用。其他语言方法是一样的。

    3.1 实现效果

    image-20220214144917259

    image-20220214144825170

    3.2 核心代码

    //解析反馈结果
    void Widget::replyFinished(QNetworkReply *reply)
    {
        QString displayInfo="";
        int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
    
        //读取所有数据
        QByteArray replyData = reply->readAll();
    
        qDebug()<<"状态码:"<<statusCode;
        qDebug()<<"反馈的数据:"<<QString(replyData);
    
        //更新token
        if(function_select==3)
        {
            displayInfo="token 更新失败.";
            //读取HTTP响应头的数据
            QList<QNetworkReply::RawHeaderPair> RawHeader=reply->rawHeaderPairs();
            qDebug()<<"HTTP响应头数量:"<<RawHeader.size();
            for(int i=0;i<RawHeader.size();i++)
            {
                QString first=RawHeader.at(i).first;
                QString second=RawHeader.at(i).second;
                if(first=="X-Subject-Token")
                {
                    Token=second.toUtf8();
                    displayInfo="token 更新成功.";
    
                    //保存到文件
                    SaveDataToFile(Token);
                    break;
                }
            }
            QMessageBox::information(this,"提示",displayInfo,QMessageBox::Ok,QMessageBox::Ok);
            return;
        }
    
        //判断状态码
        if(200 != statusCode)
        {
            //解析数据
            QJsonParseError json_error;
            QJsonDocument document = QJsonDocument::fromJson(replyData, &json_error);
            if(json_error.error == QJsonParseError::NoError)
            {
                //判断是否是对象,然后开始解析数据
                if(document.isObject())
                {
                    QString error_str="";
                    QJsonObject obj = document.object();
                    QString error_code;
                    //解析错误代码
                    if(obj.contains("error_code"))
                    {
                        error_code=obj.take("error_code").toString();
                        error_str+="错误代码:";
                        error_str+=error_code;
                        error_str+="\n";
                    }
                    if(obj.contains("error_msg"))
                    {
                        error_str+="错误消息:";
                        error_str+=obj.take("error_msg").toString();
                        error_str+="\n";
                    }
    
                    //显示错误代码
                    QMessageBox::information(this,"提示",error_str,QMessageBox::Ok,QMessageBox::Ok);
                }
             }
            return;
        }
    
        //结果返回
        if(function_select==1)
        {
            //解析数据
            QJsonParseError json_error;
            QJsonDocument document = QJsonDocument::fromJson(replyData, &json_error);
            if(json_error.error == QJsonParseError::NoError)
            {
                //判断是否是对象,然后开始解析数据
                if(document.isObject())
                {
                    QJsonObject obj = document.object();
                    QString error_code;
                    //解析
                    if(obj.contains("result"))
                    {
                        QJsonObject obj1=obj.take("result").toObject();
    
                        QString bank_name;
                        QString card_number;
                        QString type;
    
                        QString text;
                        if(obj1.contains("bank_name"))
                        {
                            bank_name=obj1.take("bank_name").toString();
                        }
                        if(obj1.contains("card_number"))
                        {
                            card_number=obj1.take("card_number").toString();
                        }
                        if(obj1.contains("type"))
                        {
                            type=obj1.take("type").toString();
                        }
    
    
                        text="发卡行:"+bank_name+"\n";
                        text+="卡号:"+card_number+"\n";
                        text+="卡类型:"+type+"\n";
    
                        ui->plainTextEdit->setPlainText(text);
                    }
                }
            }
        }
    
        //结果返回
        if(function_select==2)
        {
            //解析数据
            QJsonParseError json_error;
            QJsonDocument document = QJsonDocument::fromJson(replyData, &json_error);
            if(json_error.error == QJsonParseError::NoError)
            {
                //判断是否是对象,然后开始解析数据
                if(document.isObject())
                {
                    QJsonObject obj = document.object();
                    QString error_code;
                    //解析
                    if(obj.contains("result"))
                    {
                        QJsonObject obj1=obj.take("result").toObject();
    
                        int words_block_count;
                        QString text="";
                        if(obj1.contains("words_block_count"))
                        {
                            words_block_count=obj1.take("words_block_count").toInt();
    
                           // text=QString("识别到%1行文本.\n").arg(words_block_count);
                        }
    
                        if(obj1.contains("words_block_list"))
                        {
                            QJsonArray array=obj1.take("words_block_list").toArray();
                            for(int i=0;i<array.size();i++)
                            {
                                QJsonObject obj2=array.at(i).toObject();
                                if(obj2.contains("words"))
                                {
                                    text+=obj2.take("words").toString();
                                    text+="\n";
                                }
                            }
                        }
    
                        ui->plainTextEdit->setPlainText(text);
                    }
                }
            }
        }
    }
    
    /*
    功能: 获取token
    */
    void Widget::GetToken()
    {
        //表示获取token
        function_select=3;
    
        QString requestUrl;
        QNetworkRequest request;
    
        //设置请求地址
        QUrl url;
    
        //获取token请求地址
        requestUrl = QString("https://iam.%1.myhuaweicloud.com/v3/auth/tokens")
                     .arg(SERVER_ID);
    
        //自己创建的TCP服务器,测试用
        //requestUrl="http://10.0.0.6:8080";
    
        //设置数据提交格式
        request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json;charset=UTF-8"));
    
        //构造请求
        url.setUrl(requestUrl);
    
        request.setUrl(url);
    
        QString text =QString("{\"auth\":{\"identity\":{\"methods\":[\"password\"],\"password\":"
        "{\"user\":{\"domain\": {"
        "\"name\":\"%1\"},\"name\": \"%2\",\"password\": \"%3\"}}},"
        "\"scope\":{\"project\":{\"name\":\"%4\"}}}}")
                .arg(MAIN_USER)
                .arg(IAM_USER)
                .arg(IAM_PASSWORD)
                .arg(SERVER_ID);
    
        //发送请求
        manager->post(request, text.toUtf8());
    }
    
    //粘贴图片
    void Widget::on_pushButton_copy_clicked()
    {
        QClipboard *clipboard = QApplication::clipboard();
        const QMimeData *mimeData = clipboard->mimeData();
        if (mimeData->hasImage())
        {
            //将图片数据转为QImage
            QImage img = qvariant_cast<QImage>(mimeData->imageData());
            if(!img.isNull())
            {
               ui->widget->SetImage(img);
            }
        }
    }
    
    //获取图片里的文字信息
    void  Widget::getTextInfo(QImage image)
    {
        function_select=2;
        QString requestUrl;
        QNetworkRequest request;
    
        //存放图片BASE64编码
        QString imgData;
    
        //设置请求地址
        QUrl url;
    
        //人脸搜索请求地址
        requestUrl = QString("https://ocr.%1.myhuaweicloud.com/v2/%2/ocr/general-text")
                .arg(SERVER_ID)
                .arg(PROJECT_ID);
    
        //设置数据提交格式
        request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json;charset=UTF-8"));
    
        //将图片进行Base64编码
        imgData = QString(toBase64(image)); //编码后的图片大小不超过2M
        //设置token
        request.setRawHeader("X-Auth-Token",Token);
    
        //构造请求
        url.setUrl(requestUrl);
        request.setUrl(url);
    
        QString post_param=QString
                   ("{"
                     "\"image\": \"%1\""
                    "}").arg(imgData);
    
        //发送请求
        manager->post(request, post_param.toUtf8());
    }
    
    展开全文
  • 如何快速提取图片中文字信息、例如加密的pdf、不能复制的pdf文件
  • 图片文字提取软件 图片内容转变文字 ORC软件
  • OPENCV提取图片中文字

    千次阅读 2021-06-29 21:10:13
    日常生活我们可能需要从图片中提取文字,然而神奇的OPENCV也能帮助我们完成这个,而且更加的随心所欲,可能把 提示:以下是本篇文章正文内容,下面案例可供参考 一、使用OPENCV提取图片文字 我们需要使用各种函数...
  • OCR识别软件,提取图片文字,图片文字 市面上有许多OCR文字识别软件,但是要么识别率低,要么收费高昂.现在我推荐一款秒杀同类软件,效率提高百倍!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,047
精华内容 24,818
关键字:

如何在图片中提取文字信息

友情链接: 111.rar