我一直在嘗試將我的PNG影像(299,299)轉換為RGB(299,299,3),我嘗試了很多建議的方法但我沒有成功。我正在將郵遞員的影像發送到我的 pycharm fastapi 我的影像是 GREYSCALE PNG x 射線影像
代碼:
from fastapi import FastAPI, File, UploadFile
import uvicorn
import numpy as np
from io import BytesIO
from PIL import Image
import tensorflow as tf
import matplotlib.pyplot as plt
import cv2
app = FastAPI()
MODEL = tf.keras.models.load_model("../saved_models/1")
CLASS_NAMES = ["COVID", "Lung_Opacity", "Normal", "Viral Pneumonia"]
@app.get("/ping")
async def ping():
return "Hello, I am alive"
def read_file_as_image(data) -> np.ndarray:
image = np.array(Image.open(BytesIO(data)))
return image
@app.post("/predict")
async def predict(
file: UploadFile = File(...)
):
image = read_file_as_image(await file.read())
image = image.reshape(299,299,3)
image = Image.fromarray(image)
image = image.convert('RGB')
img_batch = np.expand_dims(image, 0)
predictions = MODEL.predict(img_batch)
pass
if __name__ == "__main__":
uvicorn.run(app, host='localhost', port=8000)
我是第一次這樣做,我不知道我做錯了什么,請幫助。我得到的錯誤是
無法將大小為 89401 的陣列重塑為形狀 (299,299,3)
uj5u.com熱心網友回復:
為了獲得3個頻道np.dstack:
image = np.dstack([image.reshape(299,299)]*3)
或者,如果您只想要一個頻道
image.reshape(299,299)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/453055.html
上一篇:點和凸集之間的距離?
