how to pass the url of image clicked on my html file to my python function in Django

javascript python html django web-services

122 观看


1 作者的声誉

i want to pass the url of the image that was selected by the user in my python function because my python function will process the image that was selected by the user. this is my html command

<!DOCTYPE html>
<link class="jsbin" href="" rel="stylesheet" type="text/css" />
<script class="jsbin" src=""></script>
<script class="jsbin" src=""></script>
<meta charset=utf-8 />
<title>JS Bin</title>
<!--[if IE]>
  <script src=""></script>
  article, aside, figure, footer, header, hgroup, 
  menu, nav, section { display: block; }
  <input type='file' onchange="readURL(this);" />
    <img id="blah" src="#" alt="your image" />
    function readURL(input) {
        if (input.files && input.files[0]) {
            var reader = new FileReader();

            reader.onload = function (e) {


and here is the function on my python

def predict():
    img = cv2.imread('C:/Users/HABITUS/Desktop/arvin files/download.jpg') #the url of the image selected must be here!!
    img = cv2.resize(img, (600, 600))
    enhancer = Image.fromarray(img)
    enhancer = ImageEnhance.Contrast(enhancer)
    enhanced = enhancer.enhance(1.5)
    enhancer1 = ImageEnhance.Brightness(enhanced).enhance(1.3)
    convert = scipy.misc.fromimage(enhancer1)
    imgM = cv2.medianBlur(convert, 5)
    # blurring and smoothening
    kernel = np.ones((5, 5), np.uint8)
    erosion = cv2.erode(imgM, kernel, iterations=1)
    dilation = cv2.dilate(erosion, kernel, iterations=1)
    blur = cv2.GaussianBlur(convert, (15, 15), 10)
    grayscaled = cv2.cvtColor(imgM, cv2.COLOR_BGR2GRAY)

    retval2, threshold2 = cv2.threshold(grayscaled, 200, 1, cv2.THRESH_BINARY_INV)

    gaus = cv2.adaptiveThreshold(grayscaled, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 115, 1)
    retval2, otsu = cv2.threshold(grayscaled, 140, 250, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
    backtorgb = cv2.cvtColor(threshold2, cv2.COLOR_GRAY2RGB)
    mult = cv2.multiply(img, backtorgb)
    edges = cv2.Canny(threshold2, 120, 50)

the image that was selected by the user must be in cv2.imread() how can i do that? any advice or help will be appreciated thanks

作者: helyeahhh 的来源 发布者: 2017 年 12 月 27 日

回应 1


165 作者的声誉

this is somewhat confusing.

you might want to start with reading

And here are two existing questions that should help you:

作者: felix the cat 发布者: 2017 年 12 月 27 日