我已经在 CIFAR10 数据集上训练了一个 CNN(占位符,稍后将替换为不同的模型)并将模型集成到烧瓶 API 中。API 托管在 Heroku 上,我现在想使用 Flutter / Dart 在我的手机上拍照,将它们发送到 Flask API,在它们上运行我的训练模型并返回预测。
使用 python,我可以轻松地向我的 API 发出发布请求并返回预测。这是我的简单python代码:
import requests
import json
img = open('some-picture.jpg', 'rb')
files = {'image': img}
response = requests.post("url_to_api", files=files)
print(response.text)
Run Code Online (Sandbox Code Playgroud)
我使用 Flutter / Dart 的时间并不长,我认为发出 htpp 请求的过程比在 python 中复杂一些。有人能给我一些指示或代码,让我可以用我的相机拍照,将它上传到我的 API,并将响应存储在一个变量中吗?这是我的烧瓶 API 的(简化的)python 代码:
from flask import Flask, request
import os
import numpy as np
from PIL import Image
from tensorflow import keras
app = Flask(__name__)
app.config["DEBUG"] = True
model = keras.models.load_model('cifar10_cnn.h5')
labels = ["Airplane", …Run Code Online (Sandbox Code Playgroud) 我正在尝试找到一种方法来读取任何 any .png、.jpgor .tiff,并返回该图像中所有黑色或灰色像素的坐标。
我正在考虑有一个特定的灰色阈值,并写出比该阈值更暗的每个像素的坐标。然而,我不确定如何管理读取图像的方面。我的目标是让结果成为图像中所有黑色像素的列表,如下所示:
[x 坐标,y 坐标,黑色]
我研究过使用它cv.imread来读出像素的坐标,但据我所知,它的工作方式与我想要的方式完全相反 - 它以坐标作为参数,并返回 RGB 值。有人有让这项工作有效的技巧/方法吗?
对于任何有类似问题的人,我使用下面的答案解决了这个问题,然后我使用 将 numpy 数组转换为列表np.ndarray.tolist()。此外,由于我只得到了结果的截断版本,因此我使用了:
import sys
np.set_printoptions(threshold=sys.maxsize)
现在使用索引打印列表中的任何元素都很简单。