2017-12-27 12 views
0

ich möchte die url des bildes, das vom benutzer ausgewählt wurde in meiner python-funktion ansichten.py, weil meine python-funktion übergeben verarbeitet das Bild, das vom Benutzer ausgewählt wurde. dies ist mein HTML-Befehlwie die url des bildes auf meine html-datei an meine python-funktion in ansichten.py Django übergeben

<!DOCTYPE html> 
<html> 
<head> 
<link class="jsbin" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" /> 
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/jquery-ui.min.js"></script> 
<meta charset=utf-8 /> 
<title>JS Bin</title> 
<!--[if IE]> 
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 
<style> 
    article, aside, figure, footer, header, hgroup, 
    menu, nav, section { display: block; } 
</style> 
</head> 
<body> 
    <input type='file' onchange="readURL(this);" /> 
    <img id="blah" src="#" alt="your image" /> 
<script> 
    function readURL(input) { 
     if (input.files && input.files[0]) { 
      var reader = new FileReader(); 

      reader.onload = function (e) { 
       $('#blah') 
        .attr('src', e.target.result) 
        .width(150) 
        .height(200); 
      }; 

      reader.readAsDataURL(input.files[0]); 
     } 
    } 
</script> 
</body> 
</html> 

und hier ist die Funktion auf meinem 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) 

das Bild, das in sein muss, durch den Benutzer ausgewählt wurde cv2.imread(), wie kann ich das tun? jeder Rat oder Hilfe wird dankbar sein, danke

+0

Ich bin nicht Lies noch einmal Django 2.0. Aber das ist eine wirklich gute Frage im Django. Mein Gedanke ist, dass der Anwendungsfall, den Sie beschreiben, in Front End und Back End aufgeteilt ist. Ich bin mir sicher, dass dies zu Meinungsverschiedenheiten führen wird, aber Django macht den Rahmen für Django nicht klar, um mit JS zu sprechen. Also, wenn Sie schnell und schmutzig sind, benutzen Sie einfach django Formulare. Aber wenn ich mehr für einen Produktions-Anwendungsfall benötige, dann würde ich ein js-Framework verwenden, um zu hören, welcher img onClicked war, und dann diesen Beitrag an einen django-Rest-Framework-Endpunkt senden. – sahutchi

Antwort

Verwandte Themen