Flask + OpenCV Как передать значения формы в функцию обработки изображения

Имеется приложение,которое обрабатывает в openCV картинку.

Вот его интерфейс: https://i.stack.imgur.com/4Jbqi.png

В HTML-коде я вызываю функцию,которая обрабатывает изображение с помощью openCV

  //функция обработки изображения вызывается здесь
            <img src="{{ url_for('output_photo') }}" width="300" height="300" alt="" class="img-thumbnail">
    //Форма,которая должна передавать значение
        <form enctype="multipart/form-data" method="POST" action="/">
                                        <div class="slidecontainer">
                                            value1
                                          <input type="range" min="1" max="100" value="100" class="slider" name="slider1">
                                        </div>
        
                                </form>

А в файле main.py я имею,собственно,саму функцию обработки,которая возвращает изображение

@app.route('/output_photo')
def output_photo():
    before_img = cv2.imread('images/1.jpg')
    result = before_img.copy()
    imgray = cv2.cvtColor(before_img, cv2.COLOR_BGR2GRAY)
    filtered = cv2.bilateralFilter(imgray, 11, 50, 100)
    output_img = filtered
    retval, buffer = cv2.imencode('.png', output_img)
    response = make_response(buffer.tobytes())
    response.headers['Content-Type'] = 'image/png'

    return response

Я могу как-то напрямую передать эти значения в мою функцию обработки,чтобы изменить значения какого-то метода,например cv2.bilateralFilter(imgray, changedValue , 50, 100)? Пробовал создавать отдельную функцию считывания,но так и не смог передать значения формы,так как моя функция обработки выдает ошибку,если прописать принимаемые параметры,а еще слышал что использовать глобальные переменные - плохая практика в таких случаях(хотя и так не получилось). Так же пробовал напрямую в функции обработки прописывать changedValue = request.form.get('slider1') чтобы получить значение слайдера,но так как у нас сначала вызывается метод обработки,а потом уже мы тыкаем на кнопку чтобы передать какие-то значения,с этим тоже ничего не вышло.

В идеале я хотел бы вариант,в котором эта функция обработки имеет дефолтные значения,а потом они менялись бы на переданные из формы,но не понимаю как это можно сделать.В крайнем случае можно сделать и обработку изображения по кнопке,которая передает значения формы,но в силу незнания фласка не понимаю как это можно сделать.Если кто-то может как-то попроще объяснить,или скинуть пример то был бы благодарен.


Ответы (0 шт):