Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> MATLAB

MATLAB Transformée Cosinus Inverse 2-D : Restaurer des images depuis les données de fréquence

La Transformée Cosinus Inverse, souvent notée ICT ou IDCT, est une opération mathématique qui inverse le processus de la Transformée Cosinus. Elle est particulièrement utile dans le traitement de signaux et d'images pour reconstruire des signaux ou images à partir de leurs représentations dans le domaine fréquentiel.

Dans le contexte de signaux ou images 2-D, la Transformée Cosinus Inverse 2-D (2-D ICT ou 2-D IDCT) convertit une matrice de coefficients de cosinus (représentant le contenu fréquentiel du signal ou de l'image) retour au domaine spatial, produisant le signal ou l'image original.

La Transformée Cosinus Inverse 2-D dans MATLAB est utilisée pour convertir une matrice de valeurs de cosinus en une image du domaine spatial. C'est l'opération inverse de la Transformée Cosinus 2-D et est couramment utilisée dans le traitement d'images et la compression. La fonction idct2 est utilisée pour effectuer la Transformée Cosinus Inverse 2-D dans MATLAB.

Transformée Cosinus Discrète Inverse 2-D

Dans MATLAB, la fonction idct2 est utilisée pour effectuer la Transformée Cosinus Inverse 2-D. Elle prend une matrice de coefficients de cosinus en entrée et retourne la représentation du domaine spatial du signal ou de l'image. Le résultat est une image reconstruite qui peut être affichée ou traitée davantage.

La Transformée Cosinus Inverse est cruciale dans diverses applications, incluant la compression d'images (par ex., dans la compression JPEG), la reconstruction d'images et les tâches de traitement de signaux où les signaux ou images doivent être transformés de retour à leur forme originale après manipulation dans le domaine fréquentiel.

Syntaxe

 B = idct2(A) B = idct2(A,m,n) B = idct2(A,[m n]) 

Explication de la syntaxe

B = idct2(A) − Calcule la Transformée Cosinus Discrète Inverse bidimensionnelle (IDCT) de la matrice A, retournant le résultat dans la matrice B. Cette opération reconstruit efficacement l'image du domaine spatial à partir de sa représentation dans le domaine fréquentiel dans A.

B = idct2(A, m,n) − calcule la Transformée Cosinus Discrète Inverse bidimensionnelle (IDCT) de la matrice A et spécifie la taille de la matrice de sortie B comme m-par-n. Cette opération reconstruit efficacement l'image du domaine spatial à partir de sa représentation dans le domaine fréquentiel dans A, la redimensionnant aux dimensions spécifiées m-par-n.

B = idct2(A, [m,n]) − calcule la Transformée Cosinus Discrète Inverse bidimensionnelle (IDCT) de la matrice A et redimensionne la matrice de sortie B pour avoir m lignes et n colonnes. Cette opération reconstruit l'image du domaine spatial à partir de sa représentation dans le domaine fréquentiel dans A, la redimensionnant aux dimensions spécifiées [m n].

Voyons quelques exemples pour la transformée cosinus discrète inverse 2-D

Exemple 1 : Supprimer les hautes fréquences d'une image en utilisant la fonction idct2()

Le code que nous avons est −

 img = imread('autumn.tif'); % Convertir en niveaux de gris si nécessaire if size(img, 3) == 3 img = rgb2gray(img); end % Calculer la 2-D DCT dct_img = dct2(double(img)); % Définir un seuil pour supprimer les hautes fréquences (ex., garder seulement les 50 premiers coefficients) threshold = 50; dct_img_thresh = dct_img; dct_img_thresh(threshold+1:end, :) = 0; dct_img_thresh(:, threshold+1:end) = 0; % Calculer l'inverse 2-D DCT pour obtenir l'image filtrée filtered_img = uint8(idct2(dct_img_thresh)); % Afficher les images originale et filtrée figure; subplot(1, 2, 1); imshow(img); title('Image Originale'); subplot(1, 2, 2); imshow(filtered_img); title('Image Filtrée'); 

Dans l'exemple −

À l'exécution, la sortie que nous obtenons est −

Exemple 2 : Redimensionner une image en utilisant B = idct2(A, m,n)

Le code que nous avons est −

 % Lire l'image img = imread('autumn.tif'); % Convertir l'image en niveaux de gris if size(img, 3) == 3 img = rgb2gray(img); end % Calculer la 2-D DCT de l'image dct_img = dct2(double(img)); % Redimensionner la matrice des coefficients DCT (représentation domaine fréquentiel) à une taille plus petite % Redimensionnons-la à la moitié de la taille originale new_size = size(img) / 2; dct_resized = imresize(dct_img, new_size); % Calculer l'inverse 2-D DCT pour obtenir l'image redimensionnée resized_img = uint8(idct2(dct_resized, size(img, 1), size(img, 2))); % Afficher les images originale et redimensionnée subplot(1, 2, 1); imshow(img); title('Image Originale'); subplot(1, 2, 2); imshow(resized_img); title('Image Redimensionnée utilisant 2-D IDCT'); 

Dans l'exemple nous avons −

La sortie à l'exécution est −

Exemple 3 : Redimensionner une matrice en utilisant la Transformée Cosinus Discrète Inverse 2-D (IDCT)

Le code que nous avons est comme suit −

 % Créer une matrice d'exemple A A = [ 10, 20, 30, 40; 50, 60, 70, 80; 90, 100, 110, 120; 130, 140, 150, 160 ]; % Afficher la matrice originale A disp('Matrice Originale A:'); disp(A); % Calculer la 2-D IDCT de A et la redimensionner à une matrice 3x2 B = idct2(A, [3, 2]); % Afficher la matrice redimensionnée B disp('Matrice Redimensionnée B (3x2):'); disp(B); 

Dans cet exemple, nous créons une matrice d'exemple 4x4 A. Nous appliquons ensuite la 2-D IDCT à A et redimensionnons le résultat à une matrice 3x2 [m, n] = [3, 2]. La matrice redimensionnée B est affichée après la transformation.

La sortie que nous obtenons est comme suit −

 Matrice Originale A: 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 Matrice Redimensionnée B (3x2): 122.0957 -11.9692 -97.4491 1.6910 12.0957 -1.9692 

MATLAB

  1. Types de données MATLAB : Guide complet
  2. Simulink : l'outil avancé de simulation et de conception basée sur les modèles de MATLAB
  3. Maîtriser les structures de décision dans MATLAB : Guide complet
  4. Importation de données dans MATLAB : méthodes efficaces pour charger des fichiers externes
  5. Visualiser les expressions mathématiques dans MATLAB : Guide de tracé 2D et 3D
  6. Calcul des dérivées symboliques dans MATLAB avec la commande diff
  7. MATLAB : Maîtriser les tableaux multidimensionnels et spéciaux
  8. MATLAB Transformée Cosinus Inverse 2-D : Restaurer des images depuis les données de fréquence
  9. MATLAB : Filtre Laplacien de Gaussien pour la détection de contours