MATLAB - compression d'image
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

MATLAB - compression d'image



  1. #1
    invite128cd1d9

    MATLAB - compression d'image


    ------

    Bonjour,

    J'ai tenté un code sur la compression d'image via la PCA (Principal Component Analysis) et il marche bien : suivant le nombre de composantes que j'utilise, l'image restituée est plus ou moins de bonne qualité.

    Ma question est sans doute bête... mais je me demandais s'il était possible de réduire le poids d'une image avec cette méthode..?

    Dans le principe, je dirais que non car l'image garde ses dimensions et puisqu'une image couleur est une matrice MxNx3, le fait de modifier seulement les intensités RGB ne peut pas influer sur le poids de l'image.

    Cependant je vois partout sur internet des cours/tuto qui proposent de la compression d'image. Leurs codes s'appuient également sur la PCA et se contentent de réduire le nombre de composantes principales de l'images. Je les ais testé mais les images qui en résultent ne sont pas plus légères que l'image de départ.

    Du coup, je m'interroge : peut-on vraiment faire de la compression d'image (en terme d'espace occupé (ko, mo,...) en réduisant leurs composantes principales ?

    Merci par avance.

    -----

  2. #2
    inviteb9f49292

    Re : MATLAB - compression d'image

    Je ne suis pas sûr du vocabulaire (et donc ma réponse est également à prendre avec des pincettes). Mais tu n'as pas vraiment enlevé tes composantes principales, tu as remplacé leurs valeurs par la valeur zéro. Or la taille occupée par une composante ne dépends pas de sa valeur, un zéro en int32_t occupe autant d'octets que 666, 12345 ou 2000000000. Donc il faut une 2nde étape du type "run-length encoding", au lieu d'enregistrer N valeurs nulles des composantes principales adjacentes (Nx4 octets en 32bits), tu enregistres simplement N et la valeur 0 (soit 8 octets).

    Appliqué au JPEG, sur ton imagette de 8x8 pixels (je crois), tu passes dans le domaine fréquentielle, tu mets à zéro certaines composantes fréquentielles (je ne sais plus si c'est pas seuillage par rapport à l'énergie ou pour les fréquences supérieurs à une certaine fréquence), en générale comme les spectres sont "roses" (énergie décroissante avec la fréquence), il n'y a plus que des zéros passé une certaine valeur de fréquence (donc des zéros "contigüs"), alors tu peux compresser ton imagette avec du RLE ou du dictionnaire grâce à ces valeurs identiques (puisque nulles) contigües.

    J'espère de pas avoir répondu à côté!

Discussions similaires

  1. compression d'image
    Par invitefdd33202 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 22/05/2011, 22h21
  2. compression d'une image
    Par invitefdd33202 dans le forum Programmation et langages, Algorithmique
    Réponses: 7
    Dernier message: 08/05/2011, 21h34
  3. image camera ip et compression
    Par invite425fffaa dans le forum Internet - Réseau - Sécurité générale
    Réponses: 1
    Dernier message: 18/12/2010, 14h46
  4. compression d'image
    Par invitec925f48a dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 05/12/2010, 02h12
  5. Compression jpeg sous matlab.
    Par invite96874538 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 10/06/2006, 13h26