mirror of
https://github.com/BreizhHardware/iris.git
synced 2026-01-18 16:57:20 +01:00
first commit
This commit is contained in:
15
.vscode/launch.json
vendored
Normal file
15
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
// Utilisez IntelliSense pour en savoir plus sur les attributs possibles.
|
||||
// Pointez pour afficher la description des attributs existants.
|
||||
// Pour plus d'informations, visitez : https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"type": "pwa-chrome",
|
||||
"request": "launch",
|
||||
"name": "Launch Chrome against localhost",
|
||||
"url": "http://localhost:8080",
|
||||
"webRoot": "${workspaceFolder}"
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
assets/css/fronts/28DaysLater.woff
Normal file
BIN
assets/css/fronts/28DaysLater.woff
Normal file
Binary file not shown.
BIN
assets/css/fronts/28DaysLater.woff2
Normal file
BIN
assets/css/fronts/28DaysLater.woff2
Normal file
Binary file not shown.
BIN
assets/css/fronts/ViaodaLibre-Regular.ttf
Normal file
BIN
assets/css/fronts/ViaodaLibre-Regular.ttf
Normal file
Binary file not shown.
BIN
assets/css/fronts/ViaodaLibre-Regular.woff2
Normal file
BIN
assets/css/fronts/ViaodaLibre-Regular.woff2
Normal file
Binary file not shown.
BIN
assets/css/fronts/go3v2.ttf
Normal file
BIN
assets/css/fronts/go3v2.ttf
Normal file
Binary file not shown.
BIN
assets/css/fronts/go3v2.woff
Normal file
BIN
assets/css/fronts/go3v2.woff
Normal file
Binary file not shown.
BIN
assets/css/fronts/go3v2.woff2
Normal file
BIN
assets/css/fronts/go3v2.woff2
Normal file
Binary file not shown.
BIN
assets/css/fronts/viaodalibre-regular-webfont.woff
Normal file
BIN
assets/css/fronts/viaodalibre-regular-webfont.woff
Normal file
Binary file not shown.
BIN
assets/css/fronts/viaodalibre-regular-webfont.woff2
Normal file
BIN
assets/css/fronts/viaodalibre-regular-webfont.woff2
Normal file
Binary file not shown.
45
assets/css/style.css
Normal file
45
assets/css/style.css
Normal file
@@ -0,0 +1,45 @@
|
||||
@font-face {
|
||||
font-family: 'viaoda_libreregular';
|
||||
src: url('fronts/go3v2.woff2') format('woff2'),
|
||||
url('fronts/go3v2.woff') format('woff');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
body {
|
||||
background-image: -moz-linear-gradient(to right, #00ccff, #1900ff);
|
||||
background-image: -webkit-linear-gradient(to right, #00ccff, #1900ff);
|
||||
background-image: -ms-linear-gradient(to right, #00ccff, #1900ff);
|
||||
background-image: linear-gradient(to right, #00ccff, #1900ff);
|
||||
}
|
||||
h1 {
|
||||
font-family: 'viaoda_libreregular';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-size: 60pt;
|
||||
text-align: center ;
|
||||
}
|
||||
|
||||
|
||||
.center {
|
||||
margin-left: auto ;
|
||||
margin-right: auto ;
|
||||
}
|
||||
|
||||
p {
|
||||
font-family: 'viaoda_libreregular';
|
||||
font-weight: normal;
|
||||
font-size: 16pt;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
img {
|
||||
display: block ;
|
||||
width: 35% ; /* Les images occupent 35% de la largeur de la page */
|
||||
}
|
||||
|
||||
/* Concerne la balise <table>...</table> */
|
||||
table {
|
||||
margin-top: 3em ;
|
||||
margin-bottom: 3em ;
|
||||
}
|
||||
56
assets/css/style_iris.css
Normal file
56
assets/css/style_iris.css
Normal file
@@ -0,0 +1,56 @@
|
||||
@font-face {
|
||||
font-family: 'viaoda_libreregular';
|
||||
src: url('fronts/28DaysLater.woff2') format('woff2'),
|
||||
url('fronts/28DaysLater.woff') format('woff');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
|
||||
body {
|
||||
/*width: 1920px;
|
||||
height: 1080px;*/
|
||||
background-image: url("../pic/monkey.jpg");
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
/*background-size: 1920px;*/
|
||||
}
|
||||
h1 {
|
||||
font-family: 'viaoda_libreregular';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-size: 60pt;
|
||||
text-align: center ;
|
||||
}
|
||||
|
||||
|
||||
.center {
|
||||
margin-left: auto ;
|
||||
margin-right: auto ;
|
||||
}
|
||||
|
||||
p {
|
||||
font-family: 'viaoda_libreregular';
|
||||
font-weight: normal;
|
||||
font-size: 20pt;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
li {
|
||||
font-family: 'viaoda_libreregular';
|
||||
font-weight: normal;
|
||||
font-size: 20pt;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
img {
|
||||
position: absolute;
|
||||
object-position: right;
|
||||
width:30%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
table {
|
||||
margin-top: 3em ;
|
||||
margin-bottom: 3em ;
|
||||
}
|
||||
151
assets/iris.csv
Normal file
151
assets/iris.csv
Normal file
@@ -0,0 +1,151 @@
|
||||
150,4,setosa,versicolor,virginica
|
||||
5.1,3.5,1.4,0.2,0
|
||||
4.9,3.0,1.4,0.2,0
|
||||
4.7,3.2,1.3,0.2,0
|
||||
4.6,3.1,1.5,0.2,0
|
||||
5.0,3.6,1.4,0.2,0
|
||||
5.4,3.9,1.7,0.4,0
|
||||
4.6,3.4,1.4,0.3,0
|
||||
5.0,3.4,1.5,0.2,0
|
||||
4.4,2.9,1.4,0.2,0
|
||||
4.9,3.1,1.5,0.1,0
|
||||
5.4,3.7,1.5,0.2,0
|
||||
4.8,3.4,1.6,0.2,0
|
||||
4.8,3.0,1.4,0.1,0
|
||||
4.3,3.0,1.1,0.1,0
|
||||
5.8,4.0,1.2,0.2,0
|
||||
5.7,4.4,1.5,0.4,0
|
||||
5.4,3.9,1.3,0.4,0
|
||||
5.1,3.5,1.4,0.3,0
|
||||
5.7,3.8,1.7,0.3,0
|
||||
5.1,3.8,1.5,0.3,0
|
||||
5.4,3.4,1.7,0.2,0
|
||||
5.1,3.7,1.5,0.4,0
|
||||
4.6,3.6,1.0,0.2,0
|
||||
5.1,3.3,1.7,0.5,0
|
||||
4.8,3.4,1.9,0.2,0
|
||||
5.0,3.0,1.6,0.2,0
|
||||
5.0,3.4,1.6,0.4,0
|
||||
5.2,3.5,1.5,0.2,0
|
||||
5.2,3.4,1.4,0.2,0
|
||||
4.7,3.2,1.6,0.2,0
|
||||
4.8,3.1,1.6,0.2,0
|
||||
5.4,3.4,1.5,0.4,0
|
||||
5.2,4.1,1.5,0.1,0
|
||||
5.5,4.2,1.4,0.2,0
|
||||
4.9,3.1,1.5,0.2,0
|
||||
5.0,3.2,1.2,0.2,0
|
||||
5.5,3.5,1.3,0.2,0
|
||||
4.9,3.6,1.4,0.1,0
|
||||
4.4,3.0,1.3,0.2,0
|
||||
5.1,3.4,1.5,0.2,0
|
||||
5.0,3.5,1.3,0.3,0
|
||||
4.5,2.3,1.3,0.3,0
|
||||
4.4,3.2,1.3,0.2,0
|
||||
5.0,3.5,1.6,0.6,0
|
||||
5.1,3.8,1.9,0.4,0
|
||||
4.8,3.0,1.4,0.3,0
|
||||
5.1,3.8,1.6,0.2,0
|
||||
4.6,3.2,1.4,0.2,0
|
||||
5.3,3.7,1.5,0.2,0
|
||||
5.0,3.3,1.4,0.2,0
|
||||
7.0,3.2,4.7,1.4,1
|
||||
6.4,3.2,4.5,1.5,1
|
||||
6.9,3.1,4.9,1.5,1
|
||||
5.5,2.3,4.0,1.3,1
|
||||
6.5,2.8,4.6,1.5,1
|
||||
5.7,2.8,4.5,1.3,1
|
||||
6.3,3.3,4.7,1.6,1
|
||||
4.9,2.4,3.3,1.0,1
|
||||
6.6,2.9,4.6,1.3,1
|
||||
5.2,2.7,3.9,1.4,1
|
||||
5.0,2.0,3.5,1.0,1
|
||||
5.9,3.0,4.2,1.5,1
|
||||
6.0,2.2,4.0,1.0,1
|
||||
6.1,2.9,4.7,1.4,1
|
||||
5.6,2.9,3.6,1.3,1
|
||||
6.7,3.1,4.4,1.4,1
|
||||
5.6,3.0,4.5,1.5,1
|
||||
5.8,2.7,4.1,1.0,1
|
||||
6.2,2.2,4.5,1.5,1
|
||||
5.6,2.5,3.9,1.1,1
|
||||
5.9,3.2,4.8,1.8,1
|
||||
6.1,2.8,4.0,1.3,1
|
||||
6.3,2.5,4.9,1.5,1
|
||||
6.1,2.8,4.7,1.2,1
|
||||
6.4,2.9,4.3,1.3,1
|
||||
6.6,3.0,4.4,1.4,1
|
||||
6.8,2.8,4.8,1.4,1
|
||||
6.7,3.0,5.0,1.7,1
|
||||
6.0,2.9,4.5,1.5,1
|
||||
5.7,2.6,3.5,1.0,1
|
||||
5.5,2.4,3.8,1.1,1
|
||||
5.5,2.4,3.7,1.0,1
|
||||
5.8,2.7,3.9,1.2,1
|
||||
6.0,2.7,5.1,1.6,1
|
||||
5.4,3.0,4.5,1.5,1
|
||||
6.0,3.4,4.5,1.6,1
|
||||
6.7,3.1,4.7,1.5,1
|
||||
6.3,2.3,4.4,1.3,1
|
||||
5.6,3.0,4.1,1.3,1
|
||||
5.5,2.5,4.0,1.3,1
|
||||
5.5,2.6,4.4,1.2,1
|
||||
6.1,3.0,4.6,1.4,1
|
||||
5.8,2.6,4.0,1.2,1
|
||||
5.0,2.3,3.3,1.0,1
|
||||
5.6,2.7,4.2,1.3,1
|
||||
5.7,3.0,4.2,1.2,1
|
||||
5.7,2.9,4.2,1.3,1
|
||||
6.2,2.9,4.3,1.3,1
|
||||
5.1,2.5,3.0,1.1,1
|
||||
5.7,2.8,4.1,1.3,1
|
||||
6.3,3.3,6.0,2.5,2
|
||||
5.8,2.7,5.1,1.9,2
|
||||
7.1,3.0,5.9,2.1,2
|
||||
6.3,2.9,5.6,1.8,2
|
||||
6.5,3.0,5.8,2.2,2
|
||||
7.6,3.0,6.6,2.1,2
|
||||
4.9,2.5,4.5,1.7,2
|
||||
7.3,2.9,6.3,1.8,2
|
||||
6.7,2.5,5.8,1.8,2
|
||||
7.2,3.6,6.1,2.5,2
|
||||
6.5,3.2,5.1,2.0,2
|
||||
6.4,2.7,5.3,1.9,2
|
||||
6.8,3.0,5.5,2.1,2
|
||||
5.7,2.5,5.0,2.0,2
|
||||
5.8,2.8,5.1,2.4,2
|
||||
6.4,3.2,5.3,2.3,2
|
||||
6.5,3.0,5.5,1.8,2
|
||||
7.7,3.8,6.7,2.2,2
|
||||
7.7,2.6,6.9,2.3,2
|
||||
6.0,2.2,5.0,1.5,2
|
||||
6.9,3.2,5.7,2.3,2
|
||||
5.6,2.8,4.9,2.0,2
|
||||
7.7,2.8,6.7,2.0,2
|
||||
6.3,2.7,4.9,1.8,2
|
||||
6.7,3.3,5.7,2.1,2
|
||||
7.2,3.2,6.0,1.8,2
|
||||
6.2,2.8,4.8,1.8,2
|
||||
6.1,3.0,4.9,1.8,2
|
||||
6.4,2.8,5.6,2.1,2
|
||||
7.2,3.0,5.8,1.6,2
|
||||
7.4,2.8,6.1,1.9,2
|
||||
7.9,3.8,6.4,2.0,2
|
||||
6.4,2.8,5.6,2.2,2
|
||||
6.3,2.8,5.1,1.5,2
|
||||
6.1,2.6,5.6,1.4,2
|
||||
7.7,3.0,6.1,2.3,2
|
||||
6.3,3.4,5.6,2.4,2
|
||||
6.4,3.1,5.5,1.8,2
|
||||
6.0,3.0,4.8,1.8,2
|
||||
6.9,3.1,5.4,2.1,2
|
||||
6.7,3.1,5.6,2.4,2
|
||||
6.9,3.1,5.1,2.3,2
|
||||
5.8,2.7,5.1,1.9,2
|
||||
6.8,3.2,5.9,2.3,2
|
||||
6.7,3.3,5.7,2.5,2
|
||||
6.7,3.0,5.2,2.3,2
|
||||
6.3,2.5,5.0,1.9,2
|
||||
6.5,3.0,5.2,2.0,2
|
||||
6.2,3.4,5.4,2.3,2
|
||||
5.9,3.0,5.1,1.8,2
|
||||
|
19
assets/js/main.js
Normal file
19
assets/js/main.js
Normal file
@@ -0,0 +1,19 @@
|
||||
function checkFeatures() {
|
||||
nbFeatures = 0
|
||||
if (document.forms["features"]["sepal-length"].value != '') {
|
||||
nbFeatures = nbFeatures + 1 ;
|
||||
}
|
||||
if (document.forms["features"]["sepal-width"].value != '') {
|
||||
nbFeatures = nbFeatures + 1 ;
|
||||
}
|
||||
if (document.forms["features"]["petal-length"].value != '') {
|
||||
nbFeatures = nbFeatures + 1 ;
|
||||
}
|
||||
if (document.forms["features"]["petal-width"].value != '') {
|
||||
nbFeatures = nbFeatures + 1 ;
|
||||
}
|
||||
if (nbFeatures < 2) {
|
||||
alert("Waring: You need to put at least 2 characteristics.");
|
||||
return false ;
|
||||
}
|
||||
}
|
||||
BIN
assets/pic/Setosa.jpeg
Normal file
BIN
assets/pic/Setosa.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
BIN
assets/pic/Versicolor.jpeg
Normal file
BIN
assets/pic/Versicolor.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/pic/Virginica.jpeg
Normal file
BIN
assets/pic/Virginica.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
BIN
assets/pic/monkey.jpg
Normal file
BIN
assets/pic/monkey.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 177 KiB |
BIN
cgi-bin/__pycache__/knn.cpython-38.pyc
Normal file
BIN
cgi-bin/__pycache__/knn.cpython-38.pyc
Normal file
Binary file not shown.
90
cgi-bin/iris.py
Normal file
90
cgi-bin/iris.py
Normal file
@@ -0,0 +1,90 @@
|
||||
#!/usr/bin/env python
|
||||
from knn import *
|
||||
import cgi
|
||||
import cgitb
|
||||
|
||||
L = []
|
||||
S = []
|
||||
K = []
|
||||
U = []
|
||||
cgitb.enable()
|
||||
|
||||
irisFile = ("assets/iris.csv")
|
||||
|
||||
|
||||
form = cgi.FieldStorage() # Renvoie les données du formulaire sous
|
||||
# la forme d'un dictionnaire.
|
||||
if 'sepal-length' in form:
|
||||
sepalLength = float(form['sepal-length'].value)
|
||||
L.append(sepalLength)
|
||||
S.append("longueur des sépales")
|
||||
K.append(0)
|
||||
U.append(float(form['sepal-length'].value))
|
||||
if 'sepal-width' in form:
|
||||
sepalWidth = float(form['sepal-width'].value)
|
||||
L.append(sepalWidth)
|
||||
S.append("largeure des sépales")
|
||||
K.append(1)
|
||||
U.append(float(form['sepal-width'].value))
|
||||
if 'petal-length' in form:
|
||||
petalLength = float(form['petal-length'].value)
|
||||
L.append(petalLength)
|
||||
S.append("longueur des pépales")
|
||||
K.append(2)
|
||||
U.append(float(form['petal-length'].value))
|
||||
if 'petal-width' in form:
|
||||
petalWidth = float(form['petal-width'].value)
|
||||
L.append(petalWidth)
|
||||
S.append("largeur des pépales")
|
||||
K.append(3)
|
||||
U.append(float(form['petal-width'].value))
|
||||
|
||||
if len(K) == 2:
|
||||
nmb = (K[0], K[1])
|
||||
elif len(K) == 3:
|
||||
nmb = (K[0], K[1], K[2])
|
||||
else:
|
||||
nmb = (K[0], K[1], K[2], K[3])
|
||||
|
||||
if len(U) == 2:
|
||||
meze = (U[0], U[1])
|
||||
elif len(U) == 3:
|
||||
meze = (U[0], U[1], U[2])
|
||||
else:
|
||||
meze = (U[0], U[1], U[2], U[3])
|
||||
|
||||
a = readPoints(irisFile, (nmb))
|
||||
prout = prediction(a, (meze), 5)
|
||||
|
||||
if prout == 0:
|
||||
espir = 'Setosa'
|
||||
elif prout == 1:
|
||||
espir = 'Versicolor'
|
||||
else:
|
||||
espir = 'Virginica'
|
||||
a = len(L)
|
||||
i= 0
|
||||
txt=""
|
||||
|
||||
while i < a:
|
||||
txt = txt + "<ul> <li> <p> " + "La valeur est de " + str(L[i]) + " pour la " + S[i] + " </p> </li> </ul> \n"
|
||||
i = i + 1
|
||||
|
||||
|
||||
|
||||
print (f'''
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../assets/css/style_iris.css" />
|
||||
<title>Résultat</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="titre">Reconnaissance d'une iris</h1>
|
||||
{txt}
|
||||
<p>Il s'agit probablement de l'espèce <strong>{espir}</strong></p>
|
||||
<div style = "position:relative; left:850px; bottom:250px";
|
||||
<center><img src = ../assets/pic/{espir}.jpeg></center>
|
||||
</body>
|
||||
''')
|
||||
85
cgi-bin/knn.py
Normal file
85
cgi-bin/knn.py
Normal file
@@ -0,0 +1,85 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
def readPoints(filename, indexes):
|
||||
""" Renvoie les informations du fichier filename sous la forme
|
||||
d'un dictionnaire dont
|
||||
* une clé est un point
|
||||
* la valeur associée est la classe d'appartenance du point.
|
||||
|
||||
indexes : indices des attributs à récupérer.
|
||||
"""
|
||||
|
||||
p = '['
|
||||
fichier = open(filename, 'r')
|
||||
iris = {}
|
||||
|
||||
fichier.readline()
|
||||
|
||||
for line in fichier:
|
||||
line = line.split(',')
|
||||
line[4] = line[4][0] #retire le \n
|
||||
|
||||
for u in range(len(indexes)):
|
||||
j = [float(line[indexes[u]]) for u in range(len(indexes))]
|
||||
j = tuple(j)
|
||||
iris[j] = line[4]
|
||||
|
||||
|
||||
fichier.close()
|
||||
|
||||
return iris
|
||||
|
||||
|
||||
|
||||
|
||||
def dist(P1, P2):
|
||||
""" Renvoie la distance entre les points P1 et P2.
|
||||
P1 et P2 sont deux points dans un espace de dimension quelconque.
|
||||
"""
|
||||
|
||||
P = 0
|
||||
x = []
|
||||
for i in range(len(P1)):
|
||||
x.append(float(P2[i]) - float(P1[i])) #on mesure chacune des longueurs (vecteur)
|
||||
for i in (x):
|
||||
P = P + i**2 #formule de module
|
||||
P = P**0.5 # puissance 0.5 = racine carré
|
||||
|
||||
return P
|
||||
|
||||
|
||||
|
||||
def prediction(clsPoints, P, k):
|
||||
""" Renvoie la classe d'appartenance du point en utilisant le
|
||||
jeu de données clsPoints et en appliquant la méthode des
|
||||
k plus proches voisins.
|
||||
"""
|
||||
D = clsPoints
|
||||
fleur0 =0
|
||||
fleur1 =0
|
||||
fleur2 =0
|
||||
l = []
|
||||
D2 = {}
|
||||
for i in D.keys():
|
||||
l.append(dist(i, P))
|
||||
D2[dist(i, P)] = i
|
||||
liste = sorted(l)
|
||||
|
||||
|
||||
for u in range(k):
|
||||
if D[D2[liste[u]]] == '0':
|
||||
fleur0 += 1
|
||||
elif D[D2[liste[u]]] == '1':
|
||||
fleur1 += 1
|
||||
else:
|
||||
fleur2 += 1
|
||||
|
||||
end = [fleur0, fleur1, fleur2]
|
||||
|
||||
|
||||
if max(end) == fleur0:
|
||||
return 0
|
||||
elif max(end) == fleur1:
|
||||
return 1
|
||||
else:
|
||||
return 2
|
||||
27
index.html
Normal file
27
index.html
Normal file
@@ -0,0 +1,27 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="assets/css/style.css" />
|
||||
<script src="assets/js/main.js"></script>
|
||||
<title>Famille Iris</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1 class="titre"><a href="https://fr.wikipedia.org/wiki/Iris_(genre_v%C3%A9g%C3%A9tal)">Iris</a></h1>
|
||||
<p> il existe plusieurs fleus d'iris, ce site vous permet de déduire l'esp<a href= https://www.monkee.games/4.html>è</a>ce en fonction des caractéristiques de l'espèces</p>
|
||||
<p> il faut au minimum deux critères pour une recherche pertinente</p>
|
||||
|
||||
<form action="cgi-bin/iris.py" name="features"><center><p>longueur des sépales</p></center><tr> <td> <center><input name="sepal-length" step="0.1" size="7" type="number"> </td></tr></center><br>
|
||||
<center><p>largeur des sépales</p></center> <tr> <td> <center><input name="sepal-width" step="0.1" size="7" type="number"></center> </td></tr><br>
|
||||
<center><p>longueur des pétales</p></center><tr> <td> <center><input name="petal-length" step="0.1" size="7" type="number"></center> </td></tr><br>
|
||||
<center><p>largeur des pétales</p></center><tr> <td> <center><input name="petal-width" step="0.1" size="7" type="number"></center> </td></tr> </p><br>
|
||||
<center>
|
||||
<input class="favorite styled"
|
||||
type="submit"
|
||||
onclick="return checkFeatures()"
|
||||
value="Trouver l'iris">
|
||||
</center>
|
||||
</form>
|
||||
<script src="assets/js/main.js"></script>
|
||||
</body>
|
||||
8
iris.code-workspace
Normal file
8
iris.code-workspace
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "."
|
||||
}
|
||||
],
|
||||
"settings": {}
|
||||
}
|
||||
16
iris.html.dev
Normal file
16
iris.html.dev
Normal file
@@ -0,0 +1,16 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="assets/css/style_iris.css" />
|
||||
<title>Résultat</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="titre">Reconnaissance d'une iris</h1>
|
||||
<ul><li>Longeur des sépales: $longeur$</li></ul><br>
|
||||
<ul><li>Largeur des sépales: $largeur$</li></ul>
|
||||
<p>Il s'agit probablement de l'espèce <strong>$espèce$</strong></p>
|
||||
<div style = "position:relative; left:850px; bottom:250px";
|
||||
<center><img src = assets/pic/versi.jpeg></center>
|
||||
|
||||
</body>
|
||||
Reference in New Issue
Block a user