PyQrCode
用OpenCV和Python识别二维码
Install / Use
/learn @rabbitLove520/PyQrCodeREADME
Python二维码识别Web服务
本项目利用opencv-python库和pyzbar库。
Python web框架使用FastAPI
使用
docker run -it --rm -p 8888:8000 salamandermh/pyqrcode
访问http://localhost:8888,可以看到用于测试的页面。
API
POST /decode
参数
|参数名|必选|类型|说明| |--- |--- |--- |--- | |file|是|file|上传的图片|
返回示例
请求成功
{
"errno": 0,
"errmsg": "识别成功",
"data": [
"https://u.wechat.com/MAjIIa7vj14B0HonaXPcZMA"
]
}
请求错误
{
"errno": 1,
"errmsg": "1 validation error for Request
body -> file
field required (type=value_error.missing)"
}
返回参数说明
|参数名|类型|说明| |--- |--- |--- | |errno|int|错误码,0:成功;1:失败| |errmsg|string|错误信息| |data|array|结果数组,一个图片中可能有多个二维码|
环境变量
WEB_CONCURRENCY:设置worker进程数量
参考文章和说明
使用zbar进行二维码解析,但是标准的zbar不支持python3,这个比较坑,还好有个大神在zbar的基础上包装了一下,做了pyzbar的开发包,支持python2与python3,非常的好用。安装非常容易,windows下一条命令搞定,Linux与Mac OS下面要先安装zbar然后再执行此命令即可。
在Ubuntu或树莓派上安装Zbar
$ sudo apt-get install libzbar0
在MacOS系统中安装Zbar
$ brew install zbar
cv2模块
cv2.imread的flag参数说明:
cv2.IMREAD_GRAYSCALE图片转化为单通道灰度图cv2.IMREAD_COLOR图片转化为三通道BGR图片cv2.IMREAD_UNCHANGED加载一副彩色图像,同时还会有透明度通道,如png图像cv2.IMREAD_ANYCOLOR任何形式的图片格式都直接读入cv2.IMREAD_ANYDEPTH若输入图片是16或32位深度图直接读入,否则转化位8位深度图
