main.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. from flask import Flask, request, jsonify
  2. import uuid
  3. from change_detect import start
  4. import requests
  5. from PIL import Image
  6. from io import BytesIO
  7. app = Flask(__name__)
  8. # GET 请求接口示例
  9. @app.route('/api/get_data', methods=['GET'])
  10. def get_data():
  11. # 获取请求参数
  12. param = request.args.get('param', default='default_value')
  13. # 返回 JSON 响应
  14. return jsonify({
  15. "message": "GET 请求成功",
  16. "param": param
  17. })
  18. # POST 上传图片
  19. @app.route('/api/upload_image', methods=['POST'])
  20. def upload_image():
  21. # 获取上传的文件
  22. img1 = request.files['img1']
  23. img2 = request.files['img2']
  24. # 保存文件
  25. filePath1 = 'predict/' + str(uuid.uuid4()) + img1.filename
  26. filePath2 = 'predict/' + str(uuid.uuid4()) + img2.filename
  27. img1.save(filePath1)
  28. img2.save(filePath2)
  29. return jsonify({
  30. "message": "上传成功",
  31. "data":{
  32. "img1": filePath1,
  33. "img2": filePath2
  34. }
  35. })
  36. # POST 通过url保存图片到本地
  37. @app.route('/api/save_image', methods=['POST'])
  38. def save_image():
  39. # 获取图片路径
  40. data = request.get_json()
  41. img1 = data['img1']
  42. img2 = data['img2']
  43. response1 = requests.get('http://192.168.60.63'+img1)
  44. if response1.status_code != 200:
  45. return jsonify({
  46. "message": "图片1不存在",
  47. "data":{
  48. "img1": img1
  49. }
  50. })
  51. img1 = Image.open(BytesIO(response1.content))
  52. img1Path = 'predict/' + str(uuid.uuid4()) + '.png'
  53. img1.save(img1Path,format='PNG')
  54. response2 = requests.get('http://192.168.60.63'+img2)
  55. if response2.status_code != 200:
  56. return jsonify({
  57. "message": "图片2不存在",
  58. "data":{
  59. "img2": img2
  60. }
  61. })
  62. img2 = Image.open(BytesIO(response2.content))
  63. img2Path = 'predict/' + str(uuid.uuid4()) + '.png'
  64. img2.save(img2Path,format='PNG')
  65. return jsonify({
  66. "message": "保存成功",
  67. "data":{
  68. "img1": img1Path,
  69. "img2": img2Path,
  70. }
  71. })
  72. # POST 分析图片
  73. @app.route('/api/detect_image', methods=['POST'])
  74. def detect_image():
  75. # 获取图片路径
  76. data = request.get_json()
  77. img1 = data['img1']
  78. img2 = data['img2']
  79. getImgPath=start(img1,img2)
  80. return jsonify({
  81. "message": "分析成功",
  82. "data":{
  83. "img": getImgPath
  84. }
  85. })
  86. if __name__ == '__main__':
  87. app.run(debug=True,host='0.0.0.0',port=4100)