测试优化
对系统进行优化与测试,针对系统中出现的问题制定解决方案。
问题
通过测试发现上传不同格式的图片后只有jpg格式可以调用识别算法进行识别,其他格式没有响应。测试上传png格式的图片,点击确认按钮调用识别算法进行识别无响应。
解决方案
识别算法可以识别的图片格式是pil可以读写的所有格式,无响应的解决方案是通过调整后端调用识别算法的方式来支持识别其他格式的图片。前端不能够获取图片的地址,所以将图片格式转为base64格式的图片,然后将此通过POST方法提交给后端,后端接收到base64图片格式,在使用python的库进行图片格式转换,最后调用饮食识别算法获取食材信息返回给前端进行展示。
@app.route('/material/uploadFile', methods=['POST'])
def uploadFile():
file = request.form.get('file')
#image = Image.open(BytesIO(file))
img_data = plt.imread(BytesIO(base64.b64decode(file)), "jpg")
image = Image.fromarray(np.uint8(img_data)).convert("RGB")
foodInference = FoodInference()
data = foodInference.out(image)
return {'success': True, 'msg': '识别成功!', 'data': data}
通过调整最终实现各种格式图片的上传及识别: