您好,
会员登录 快速注册
退出 ( 条未读消息)
关于本站 意见反馈 首页

公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!
全部文章分类
  • 人工智能 >

  • 编程语言 >

  • WPF系列 >

  • ASP.NET系列 >

  • Linux >

  • 数据库 >

  • 嵌入式 >

  • WEB技术 >

  • PLC系列 >

  • 微服务与框架 >

  • 小宅DIY >

  • 学习资料 >

OpenCv基础 ANN车牌识别 yolov5车牌识别 指针式仪表识别 ROS系列 YOLO Halcon Detectron2 昇腾AI ChatGPT在线体验 英伟达JETSON ChatGLM ChatTTS FunASR 地平线 ByteTrack 魔搭社区 LangChain
C C# C++ Python Java Go
WPF
ASP.NET小功能 GPS定位系统-MVC GPS定位系统-VUE
Linux Linux内核 Shell MakeFile
MySql SqlServer Oracle
STM8 STM32 51单片机
VUE入门 HTML JavaScript CSS layui镜像网站 ElementUi中文官网
三菱 欧姆龙 西门子 施耐德 松下 台达
IOTSharp IOTGateway ABP FRAMEWORK Docker
亚克力音响 编程仙途:智驭万法
面试题与技巧 Python入门技能树 微软C#教程
首页 编程之美 工具下载 全国就业 流量地图 文心一言
Python
创建POST、GET服务 python 打包成exe
python 打包成exe
激萌の小宅 小宅博客 Python

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

创建POST、GET服务

功能介绍:

1、实现POST、GET服务

2、返回json结构数据

3、支持请求参数传入

4、支持base64图像传入,并转换成OpenCv Mat格式图像

5、支持OpenCv Mat格式图像转base64数据输出


Request请求对象的常用属性和方法

属性或方法

说明

args

存储url请求中的查询参数,返回类似于字典的数据

method

存储请求中使用的HTTP方法,例如GET或POST

form

存储请求提交的所有表单数据,返回类似于字典的数据

files

存储请求上传的所有文件,返回类似于字典的数据

cookies

存储请求的所有cookie,返回类似于字典的数据

host

存储请求的域名

headers

存储HTTP请求的请求头信息,返回类似于字典的数据

url

存储客户端请求的完整URL

path

存储路由中的路径

base_url

存储去掉GET参数的URL

host_url

存储只有主机和端口号的URL

remote_addr

存储请求的客户端地址


测试源码如下:

import base64
import numpy as np
import cv2

from flask import request, Flask
from flask import jsonify
from flask_cors import CORS

app = Flask(__name__)
CORS(app, resources=r'/*')
headers = {'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'}


def image_to_base64(image_np):
    image = cv2.imencode('.jpg', image_np)[1]
    image_code = str(base64.b64encode(image))[2:-1]
    return image_code


"""
Post URL:http://127.0.0.1:9003/ReadImage
功能:POST读取图片
参数:{"path": "out.jpg"}
"""
@app.route('/ReadImage', methods=['POST'])
def ReadImage():
    print(request.json)
    path = request.json.get('path')
    print("收到数据:", path)

    # Img转base64转码
    image = cv2.imread(path)
    image = cv2.resize(image, (int(image.shape[1] * 0.2), int(image.shape[0] * 0.2)), interpolation=cv2.INTER_NEAREST)
    image_code = image_to_base64(image)
    image_code = f'data:image/png;base64,{image_code}'
    return jsonify({'success': True, 'message': '成功', 'image': image_code})


"""
Post URL:http://127.0.0.1:9003/SaveImage
功能:POST传入base64图像,base64转mat, 并保存成jpg文件
"""
@app.route('/SaveImage', methods=['POST'])
def SaveImage():
    base64Img = request.json.get('base64Img')
    bases = base64Img.split(',')
    if len(bases) != 2:
        return jsonify({'success': False, 'message': 'base64图像格式错误'})
    # base64转码为Img
    img_b64decode = base64.b64decode(bases[1])
    img_array = np.fromstring(img_b64decode, np.uint8)
    image = cv2.imdecode(img_array, cv2.COLOR_RGB2BGR)
    # 保存Mat图像
    cv2.imwrite("save.jpg", image)
    return jsonify({'success': True, 'message': '成功'})


"""
Post URL:http://127.0.0.1:9003/GetImage
功能:GET读取图片
参数:{"path": "out.jpg"}
"""
@app.route('/GetImage', methods=['GET'])
def GetImage():
    # Img转base64转码
    path = request.args.get('path')
    print("GET路径:", path)
    image = cv2.imread(path)
    image = cv2.resize(image, (int(image.shape[1] * 0.2), int(image.shape[0] * 0.2)), interpolation=cv2.INTER_NEAREST)
    image_code = image_to_base64(image)
    image_code = f'data:image/png;base64,{image_code}'
    return jsonify({'success': True, 'message': '成功', 'image': image_code})


if __name__ == "__main__":
    app.run(
        host='127.0.0.1',
        port=9003,
        debug=False
    )


运行结果如下:

QQ截图20240223112159.jpg


测试1:读取一张图片

QQ截图20240223134033.jpg


测试2:保存一张图片

QQ截图20240223134355.jpg


测试3:get方式读取图片

QQ截图20240223135700.jpg



python 打包成exe

友情链接: CSDN激萌の小宅 95知识库 自考题库 罗分明个人网络博客 精益编程leanboot

小宅博客  www.bilibili996.com All Rights Reserved. 备案号: 闽ICP备2024034575号

网站经营许可证  福建省福州市 Copyright©2021-2025 版权所有

小宅博客
首页 智能家居 地图定位
公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

创建POST、GET服务

功能介绍:

1、实现POST、GET服务

2、返回json结构数据

3、支持请求参数传入

4、支持base64图像传入,并转换成OpenCv Mat格式图像

5、支持OpenCv Mat格式图像转base64数据输出


Request请求对象的常用属性和方法

属性或方法

说明

args

存储url请求中的查询参数,返回类似于字典的数据

method

存储请求中使用的HTTP方法,例如GET或POST

form

存储请求提交的所有表单数据,返回类似于字典的数据

files

存储请求上传的所有文件,返回类似于字典的数据

cookies

存储请求的所有cookie,返回类似于字典的数据

host

存储请求的域名

headers

存储HTTP请求的请求头信息,返回类似于字典的数据

url

存储客户端请求的完整URL

path

存储路由中的路径

base_url

存储去掉GET参数的URL

host_url

存储只有主机和端口号的URL

remote_addr

存储请求的客户端地址


测试源码如下:

import base64
import numpy as np
import cv2

from flask import request, Flask
from flask import jsonify
from flask_cors import CORS

app = Flask(__name__)
CORS(app, resources=r'/*')
headers = {'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'}


def image_to_base64(image_np):
    image = cv2.imencode('.jpg', image_np)[1]
    image_code = str(base64.b64encode(image))[2:-1]
    return image_code


"""
Post URL:http://127.0.0.1:9003/ReadImage
功能:POST读取图片
参数:{"path": "out.jpg"}
"""
@app.route('/ReadImage', methods=['POST'])
def ReadImage():
    print(request.json)
    path = request.json.get('path')
    print("收到数据:", path)

    # Img转base64转码
    image = cv2.imread(path)
    image = cv2.resize(image, (int(image.shape[1] * 0.2), int(image.shape[0] * 0.2)), interpolation=cv2.INTER_NEAREST)
    image_code = image_to_base64(image)
    image_code = f'data:image/png;base64,{image_code}'
    return jsonify({'success': True, 'message': '成功', 'image': image_code})


"""
Post URL:http://127.0.0.1:9003/SaveImage
功能:POST传入base64图像,base64转mat, 并保存成jpg文件
"""
@app.route('/SaveImage', methods=['POST'])
def SaveImage():
    base64Img = request.json.get('base64Img')
    bases = base64Img.split(',')
    if len(bases) != 2:
        return jsonify({'success': False, 'message': 'base64图像格式错误'})
    # base64转码为Img
    img_b64decode = base64.b64decode(bases[1])
    img_array = np.fromstring(img_b64decode, np.uint8)
    image = cv2.imdecode(img_array, cv2.COLOR_RGB2BGR)
    # 保存Mat图像
    cv2.imwrite("save.jpg", image)
    return jsonify({'success': True, 'message': '成功'})


"""
Post URL:http://127.0.0.1:9003/GetImage
功能:GET读取图片
参数:{"path": "out.jpg"}
"""
@app.route('/GetImage', methods=['GET'])
def GetImage():
    # Img转base64转码
    path = request.args.get('path')
    print("GET路径:", path)
    image = cv2.imread(path)
    image = cv2.resize(image, (int(image.shape[1] * 0.2), int(image.shape[0] * 0.2)), interpolation=cv2.INTER_NEAREST)
    image_code = image_to_base64(image)
    image_code = f'data:image/png;base64,{image_code}'
    return jsonify({'success': True, 'message': '成功', 'image': image_code})


if __name__ == "__main__":
    app.run(
        host='127.0.0.1',
        port=9003,
        debug=False
    )


运行结果如下:

QQ截图20240223112159.jpg


测试1:读取一张图片

QQ截图20240223134033.jpg


测试2:保存一张图片

QQ截图20240223134355.jpg


测试3:get方式读取图片

QQ截图20240223135700.jpg