File: //test_python/codificatorev2.py
import numpy as np
from PIL import Image
import os
def codificatore_v2(image_path, grid_size=64): # Raddoppiamo la densitÃ
img = Image.open(image_path).convert('RGB')
# Ridimensioniamo per far combaciare perfettamente i blocchi
img = img.resize((grid_size * 8, grid_size * 8), Image.Resampling.LANCZOS)
data = np.asarray(img, dtype=float) / 255.0
# Matrice Sasso ad alta fedeltÃ
# Conserviamo il valore massimo di gradiente per ogni blocco (Punta del Solitone)
sasso_v2 = np.zeros((grid_size, grid_size, 3))
sh, sw = data.shape[0] // grid_size, data.shape[1] // grid_size
for c in range(3):
for i in range(grid_size):
for j in range(grid_size):
block = data[i*sh:(i+1)*sh, j*sw:(j+1)*sw, c]
# Catturiamo la dinamica locale (Varianza + Picco)
# Questo preserva la "fase" del lineamento
sasso_v2[i, j, c] = np.max(block) if np.mean(block) > 0.1 else np.mean(block)
np.save('matrice_sasso_v2.npy', sasso_v2)
print("V2: Matrice generata con conservazione strutturale.")
if __name__ == "__main__":
codificatore_v2("immagine_volto.jpg")