HEX
Server: Apache/2.4.66 (Ubuntu)
System: Linux nic2 5.15.0-177-generic #187-Ubuntu SMP Sat Apr 11 22:54:33 UTC 2026 x86_64
User: www-data (33)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //test_python/codificatore_light.py
import numpy as np
from PIL import Image

def sasso_ottimizzato_encoding(image_path, k_components=180):
    img = Image.open(image_path).convert('RGB')
    img_array = np.asarray(img, dtype=np.float32) / 255.0
    
    data_dict = {'shape': img_array.shape}
    
    for i, color in enumerate(['r', 'g', 'b']):
        channel = img_array[:,:,i]
        U, S, Vt = np.linalg.svd(channel, full_matrices=False)
        
        # Casting a float16 per abbattere il peso del file
        # Conserviamo k_components per mantenere i capelli rasati nitidi
        data_dict[f'U_{color}'] = U[:, :k_components].astype(np.float16)
        data_dict[f'S_{color}'] = S[:k_components].astype(np.float16)
        data_dict[f'Vt_{color}'] = Vt[:k_components, :].astype(np.float16)
    
    # Salvataggio con massima compressione di archivio
    np.savez_compressed('sasso_v4_light.npz', **data_dict)
    import os
    size = os.path.getsize('sasso_v4_light.npz') / (1024*1024)
    print(f"Sasso Ottimizzato generato: {size:.2f} MB")

if __name__ == "__main__":
    sasso_ottimizzato_encoding("immagine_volto.jpg")