1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
image = Image.open("image4.jpeg")
largeur, hauteur = image.size
L= []
regressionX = []
regressionY = []
difference = [0]
valeurs =[]
X = []
Y = []
npoints = []
a = 0
b = 0
def index_max(liste) :
max = liste[0]
a = 0
for i in range(len(liste)) :
if liste[i] > max :
max = liste[i]
a = i
return a
def valeurs_max(img) :
for y in range(hauteur) :
for x in range(largeur) :
r, v ,b = img.getpixel((x, y))
L.append(b)
for i in range(len(L) - 1) :
difference.append(abs(L[i+1] - L[i]))
X.append(index_max(difference))
Y.insert(0, y)
difference.clear()
L.clear()
return X, Y
valeurs_max(image)
np.array(X)
np.array(Y)
def regLin_np(x, y) :
npoints = len(x)
print(npoints)
a = (npoints * (x*y).sum() - x.sum()*y.sum()) / (npoints*(x**2).sum() - (x.sum())**2)
b = ((x**2).sum()*y.sum() - x.sum() * (x*y).sum()) / (npoints * (x**2).sum() - (x.sum())**2)
return a, b
regLin_np(Y, X)
def f(x) :
return a*x +b
regressionY.append(0)
regressionY.append(largeur)
regressionX.append(f(0))
regressionX.append(f(largeur))
axes = plt.axes()
axes.grid()
plt.scratter(X, Y)
plt.plot(regressionX, regressionY)
plt.show() |
Partager