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