AI提取圖片包含的文字信息-解決文字無法復制的痛點【玩轉華為云】

      網友投稿 1016 2022-05-30

      1. 前言

      平時工作中編寫開發技術文檔,或者學生在編寫論文時,經常會上網搜索一些參考文獻、文檔。

      比如: 上網搜索相似的內容參考一下或者引用別人的一段文字,有時候看到一篇較好的內容想要保存等等。

      這個過程中會發現,很多網站的提供的頁面都是不能復制粘貼的,或者直接是圖片形式提供,為了方便能獲取這些文字,當前就利用華為云提供的 通用文字識別接口,識別圖片里的文本內容,方便復制文字。這個功能QQ上也集成了,使用很方便,這里利用華為云的接口實現一個與QQ類似的功能,截圖之后識別圖片里包含的文本內容。

      這個文字識別接口里不僅僅有通用文字識別功能,還支持很多其他功能:比如身份證、駕駛證、保險單、手寫文本、火車票,行駛證…等等功能。還支持用戶自定義識別模板,指定需要識別的關鍵字段,實現用戶特定格式圖片的自動識別和結構化提取。

      2. 文本識別接口使用介紹

      2.1 開通服務

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

      這個文字識別服務是按調用次數計費的,每個用戶每月有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 } }

      2.3 在線調試接口

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

      AI提取圖片里包含的文字信息-解決文字無法復制的痛點【玩轉華為云】

      使用調試接口想體驗識別效果,圖片的數據支持base64編碼、http網絡圖片地址傳入,測試非常方便。

      關于獲取圖片base64編碼的方式,在文檔里也有介紹,直接通過瀏覽器獲取。

      3. 實現代碼

      代碼采用QT編寫的,請求API接口實現調用。其他語言方法是一樣的。

      3.1 實現效果

      3.2 核心代碼

      //解析反饋結果 void Widget::replyFinished(QNetworkReply *reply) { QString displayInfo=""; int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); //讀取所有數據 QByteArray replyData = reply->readAll(); qDebug()<<"狀態碼:"< RawHeader=reply->rawHeaderPairs(); qDebug()<<"HTTP響應頭數量:"<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;iplainTextEdit->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(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()); }

      AI

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Kubernetes官方java客戶端之六:OpenAPI基本操作
      下一篇:windows系統process的kill方法和close方法區別
      相關文章
      亚洲人成7777影视在线观看| www.亚洲成在线| 亚洲熟女综合色一区二区三区| 亚洲精品视频免费看| 中文字幕亚洲精品| 久久亚洲sm情趣捆绑调教| 亚洲精品中文字幕无乱码| 久久久无码精品亚洲日韩按摩| 亚洲精品综合一二三区在线| 内射干少妇亚洲69XXX| 久久亚洲春色中文字幕久久久| 4444亚洲国产成人精品| 亚洲国产精品综合一区在线| 亚洲国产日韩在线| 亚洲综合久久1区2区3区| 亚洲导航深夜福利| 亚洲精品一二三区| 亚洲精品乱码久久久久蜜桃| 欧洲 亚洲 国产图片综合| 亚洲性无码一区二区三区| 亚洲AV成人精品日韩一区| 亚洲黄黄黄网站在线观看| 中文字幕亚洲激情| 亚洲国产精华液网站w| 亚洲视频在线观看一区| 亚洲国产高清美女在线观看| ass亚洲**毛茸茸pics| 亚洲另类无码一区二区三区| 色偷偷亚洲男人天堂| 久久久久亚洲AV成人网人人网站| 亚洲精品国产品国语在线| 亚洲最大福利视频网站| 亚洲av无码久久忘忧草| 亚洲AV无码精品国产成人| 亚洲人成国产精品无码| 亚洲AV日韩AV天堂一区二区三区| 亚洲日产2021三区| 亚洲成a人无码亚洲成www牛牛 | 怡红院亚洲红怡院在线观看| 亚洲精品无码久久久| 国产亚洲3p无码一区二区|