Wiidede's blog Wiidede's blog
  • 前端
  • Python
  • 算法
  • 生活
  • 其他
  • 分类
  • 标签
  • 归档
  • 关于我
  • 赞赏
  • 我的小站 (opens new window)
GitHub (opens new window)

Wiidede

小的的写前端
  • 前端
  • Python
  • 算法
  • 生活
  • 其他
  • 分类
  • 标签
  • 归档
  • 关于我
  • 赞赏
  • 我的小站 (opens new window)
GitHub (opens new window)
  • 监听剪贴板 在文字中匹配相应的内容 适用于题库
  • 正则表达式 向前最短匹配
  • 毕业设计(水表识别)后端知识整理
    • 技术点
    • 部分实现
      • 识别接口
      • 下载示例图片接口
      • 识别主函数
    • 总结
  • Python
wiidede
2021-06-04

毕业设计(水表识别)后端知识整理

# 毕业设计(水表识别)后端知识整理

大学毕业设计后端项目,主要功能是水表识别。

水表识别的代码参考了这个项目 (opens new window)(如果需要识别代码,请参考这个项目,我写的项目目前不打算公开)

# 技术点

  • Flask
  • TensorFlow

# 部分实现

# 识别接口

识别接口主要是上传图片,然后将图片传给识别函数,并且以一定的格式返回识别结果

ALLOWED_EXTENSIONS = {'jpg', 'jpeg', 'png', 'gif', 'JPG', 'JPEG', 'PNG', 'GIF'}

@app.route('/recognize', methods=['POST'])
def recognizeApi():
    file = request.files.get('file')
    if file and '.' in file.filename and file.filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS:
        data = file.read()
        imgRaw = str(base64.b64encode(data), encoding='utf-8')
        resStr, imgCrop = recognize(data)
        return jsonify({
            'code': 0,
            'message': '识别成功',
            'imgRaw': imgRaw,
            'imgCrop': imgCrop,
            'resStr': resStr
        })
    else:
        return jsonify({
            'code': 1,
            'message': '上传文件类型不支持',
        })
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 下载示例图片接口

这个接口就是简单的下载接口

@app.route('/download/demo', methods=['GET'])
def download():
    directory = os.getcwd()
    return send_from_directory(directory, 'assets/demo.zip', as_attachment=True)
1
2
3
4

# 识别主函数

这也就是接口调用的函数,具体的里面的识别部分可以参考最上面提到的项目

def recognize(data):
    num_region_bytes = get_num_region(BytesIO(data))  # 识别出字轮区域
    num_region = Image.fromarray(num_region_bytes)  # 转换成Image格式
    res_number = get_wm_num(num_region)  # 识别字轮区域的数字

    res_str = "{:6.0f}".format(res_number)

    # 将字轮区域的图片转为base64编码
    buffered = BytesIO()
    num_region.save(buffered, format="PNG")
    num_region_base64 = str(base64.b64encode(buffered.getvalue()), encoding='utf-8')

    return res_str, num_region_base64
1
2
3
4
5
6
7
8
9
10
11
12
13

# 总结

整个毕业设计最重要的部分,其实都是参考了别人的项目,这里再次感谢这位作者 (opens new window)。

主要就是利用Flask建立起后端框架,能够让前后端联动。

#Python#毕业设计#Flask
上次更新: 2023/06/01, 12:40:50

← 正则表达式 向前最短匹配

Theme by Vdoing | Copyright © 2021-2023 Wiidede | Website use MIT License | Article content & logo use CC-BY-SA-4.0 License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式