Мое flask приложение не читает входные изображения - PullRequest
0 голосов
/ 23 января 2020

Я создал приложение Image Classifier Flask, но оно не читает мои входные изображения (ни одно из них). Я перепробовал все решения, которые нашел на inte rnet, но не смог решить свою проблему.

Ниже Flask API, который я использую:

@app.route('/upload',methods=['GET','POST'])
def upload_analyze():

    if request.method == 'POST':
        # check if a file was passed into the POST request
        if 'image' not in request.files:
            flash('No file was uploaded.')
            return redirect(request.url)


        image_file = request.files['image']
        #print(image_file)
        image_file = str(image_file)
        image = cv2.imread(image_file)

        clt = KMeans(n_clusters = 3)
        dataset = pd.read_csv('bb22.csv') 
        X = dataset.iloc[:, 1: 8].values
        sc = StandardScaler()
        global orig , r
            # load the image, convert it to grayscale, and blur it slightly
        #images = np.array(Image.open(image_file))
        gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
        gray = cv2.GaussianBlur(gray, (7, 7), 0)
        ................

Он берет входное изображение зерна и вычисляет его длину, ширину и сообщает, является ли его целым (1) / ломаным ( 0)

1 Ответ

1 голос
/ 07 февраля 2020

Я нашел этот flask файл с примером загрузки кода онлайн.

Я думаю, что проблема в вашем коде в том, что возвращаемое значение из request.files['image'] является объектом, который имеет методы типа save() и filename(). cv2.imread() нужен файл в качестве входных данных, поэтому str(image_file) не работает.

Посмотрите пример по ссылке выше, чтобы увидеть, как возвращаемое значение используется для сохранения файла:

f = request.files['file']
filename = secure_filename(f.filename)
f.save(filename)
image = cv2.imread(filename)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...