基于微信OCR引擎的Docker化REST API服务。
English | 中文
本项目将优秀的wechat-ocr项目中的微信OCR功能包装成一个简单的REST API服务,可以使用Docker轻松部署。它允许您利用微信强大的OCR功能对图像进行文字识别。
这是一个仅用于学习和交流目的的开源项目。请勿将其用于商业活动。用户对因不当使用本项目而导致的任何后果负有全部责任。
版权声明: 本项目仅是对现有开源项目的容器化。如果您认为本仓库侵犯了您的版权或知识产权,请立即联系仓库所有者,仓库将会被迅速删除。我们尊重知识产权,无意侵犯任何权利。
本项目的实现离不开swigger及其wechat-ocr项目的工作。他们在逆向工程和创建微信OCR功能可用接口方面的努力构成了本服务的基础。
# 拉取镜像
docker pull golangboyme/wxocr
# 运行容器
docker run -d -p 5000:5000 --name wechat-ocr-api golangboyme/wxocr向/ocr发送POST请求,JSON负载中包含您的base64编码图像:
curl -X POST http://localhost:5000/ocr \
  -H "Content-Type: application/json" \
  -d '{"image": "BASE64编码的图像数据"}'{
  "errcode": 0,
  "height": 72,
  "width": 410,
  "imgpath": "temp/5726fe7b-25d6-43a6-a50d-35b5f668fbb6.png",
  "ocr_response": [
    {
      "text": "aacss",
      "left": 80.63632202148438,
      "top": 29.634929656982422,
      "right": 236.47093200683594,
      "bottom": 55.28932189941406,
      "rate": 0.9997046589851379
    },
    {
      "text": "xxzsa",
      "left": 312.625,
      "top": 30.75,
      "right": 395.265625,
      "bottom": 55.09375,
      "rate": 0.997739315032959
    }
  ]
}这是一个简单的Python客户端,用于使用OCR API:
import requests
import base64
import os
def ocr_recognize(image_path=None, image_url=None, api_url="http://localhost:5000/ocr"):
    """
    将图像发送到OCR API服务并获取识别结果。
    使用image_path或image_url(需要提供其中一个)。
    """
    # 获取图像数据
    if image_path:
        if not os.path.exists(image_path):
            print(f"错误:未找到本地图像:{image_path}")
            return
        with open(image_path, "rb") as image_file:
            img_data = image_file.read()
    elif image_url:
        try:
            response = requests.get(image_url)
            response.raise_for_status()
            img_data = response.content
        except Exception as e:
            print(f"下载图像失败:{str(e)}")
            return
    else:
        print("请提供image_path或image_url")
        return
    # 将图像转换为base64
    base64_image = base64.b64encode(img_data).decode('utf-8')
    
    # 发送请求到API
    try:
        response = requests.post(api_url, json={"image": base64_image})
        response.raise_for_status()
        return response.json()
    except Exception as e:
        print(f"API请求失败:{str(e)}")
        return None
# 使用示例
if __name__ == "__main__":
    # 本地图像示例
    result = ocr_recognize(image_path="ocrtest.png")
    if result:
        print(result)
    
    # URL图像示例(取消注释以使用)
    # result = ocr_recognize(image_url="https://example.com/image.png")main.py:处理OCR请求的Flask API服务opt/wechat/wxocr:微信OCR二进制文件opt/wechat/:微信运行时依赖
该服务使用Flask应用程序为微信OCR功能提供REST API接口。当提交图像时:
- 解码base64编码的图像
 - 创建临时文件
 - 通过wcocr Python绑定由微信OCR引擎处理图像
 - 以JSON格式返回结果
 - 清理临时文件
 
- 目前仅支持PNG图像(如需要可以扩展)
 - 依赖于可能被微信更新的微信OCR二进制文件
 
本项目根据MIT许可证提供,并附加以下条款:
- 仓库所有者对本软件的任何使用不承担任何责任。
 - 通过使用、复制、修改或分发本软件,您承认使用本软件的任何行为完全由您自行负责。
 - 对本仓库及其内容的任何使用均由用户自行承担风险和责任。
 - 仓库所有者对使用本软件产生的任何后果(法律上的或其他方面的)不承担责任。
 
欢迎贡献!请随时提交Pull Request。