20 qrCodeDecode无法解析边角模糊一点点的二维码。 悬赏已过期

发布于 2020-10-27 15:44:25

qrCodeDecode()无法解析比较,只是比较边角没有那么清晰的二维码图片,只能解析像Z.F.B,W.X之类生成出来非常清晰的二维码图片。能否增加个精度设置,下面这图片也算清晰了,也无法解析出来。1.png

查看更多

关注者
0
被浏览
578
6 个回答
Evan
Evan 认证专家 2020-10-27

可以使用草料接口识别无法识别的二维码.
需要先把二维码上传到一个可以访问的网址,例如上图是 https://cdn.pilipa.com/uploads/20201027/fbe2079b1dd9dd26292a11c38ac691d0.png
可以使用又拍云或七牛云
然后使用下面的代码识别

function main()
  local http = require "socket.http"
  local ltn12 = require "ltn12"
  local request_body = [[img=https://cdn.pilipa.com/uploads/20201027/fbe2079b1dd9dd26292a11c38ac691d0.png]] -- 这里是POST的数据
  local response_body = {}
  local res, code, response_headers = http.request{
      url = "https://cli.im/apis/up/deqrimg?img", -- 这里是你提交的域名
      method = "POST",
      headers =
      {
          ["Content-Type"] = "application/x-www-form-urlencoded";
          ["Content-Length"] = #request_body;
      },
      source = ltn12.source.string(request_body),
      sink = ltn12.sink.table(response_body),
  }
  logDebug(res)
  logDebug(code)
  if type(response_body) == "table" then
      logDebug(table.concat(response_body))
  else
      logDebug("Not a table:", type(response_body))
  end
end
上图的返回值如下
{"status":1,"info":{"status":1,"info":"","data":["https:\/\/open.weixin.qq.com\/connect\/confirm?uuid=geEzX1fBIWqUAAAAABJRU5ErkJggg=="]}}
如果返回值里面有多余的斜杠 "\"可使用 下面代码替换

string.gsub(table.concat(response_body), '\\', '')
ljds
ljds 2020-10-27

现在用的就是网站base64二维码识别。有的时候会返回空数据,也不方便,所以想你们能有办法在本地直接识别吗?二值化之类的都处理过的,都没有办法让qrCodeDecode()识别出来。

Evan
Evan 认证专家 2020-10-27

手机上面使用的qrCodeDecode二维码识别库比较弱.除非这个库更新,要不也没什么别的办法

ljds
ljds 2020-10-27

能否使用其它库之类的,比如山海,或其它可以调用的插件?

Evan
Evan 认证专家 2020-10-27

这个只能你自行测试了.加载后不报错应该就可以用

ljds
ljds 2020-10-27

不知下次更新这个库是什么时候?还是希望官方能够尽快更新这个识别库。使用外面插件库还是有很多未知问题出现。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览