#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Mar  5 09:01:54 2026

@author: vincentleprince
"""


from PIL import Image
import numpy as np
#import matplotlib.pyplot as plt


## L'image suivante servira à tester les fonctions :
Im = Image.open("image.jpeg")
ImTab = np.array(Im) # tableau représentant cette image
# Pour la visualiser : 
Im.show()   



def convol(ImTab,A):
    """ convolution de l'image  Imtab par la matrice carrée A """
    h , l , e = np.shape(ImTab)   # e vaut 3
    p = np.shape(A)[0] # p doit être impair
    ImConv = np.zeros((h,l,3),dtype=np.uint8)
    # on ne traite pas les bords
    for i in range(... , ...):
        for j in range(... , ...):
            nouveauPix = np.zeros(3) # représente un pixel
            for r in range(0,p):
                for s in range(0,p):
                    nouveauPix = ...
            ImConv[i,j] = nouveauPix
    return ImConv
    

# test 

A = ...

ImTabFlou = convol(ImTab,A)
ImFlou = Image.fromarray(ImTabFlou)  
ImFlou.show()

# répétition : 
nbRep = 2
ImTabNew = ImTab
for _ in range(nbRep):  
    ImTabNew = ...

ImFlou = Image.fromarray(ImTabNew)  
ImFlou.show()    
    
