Reconstruction d'image: phase vs amplitude


11

La figure 1. (c) montre l'image test reconstruite uniquement à partir du spectre MAGNITUDE. Nous pouvons dire que les valeurs d'intensité des pixels à basse fréquence sont comparativement plus élevées que les pixels à haute fréquence.

La figure 1. (d) montre l'image test reconstruite à partir du spectre PHASE uniquement. Nous pouvons dire que les valeurs d'intensité des pixels à haute fréquence (bords, lignes) sont comparativement plus élevées que les pixels à basse fréquence.

Pourquoi cette contradiction magique du changement d'intensité (ou échange) est présente entre l'image de test reconstruite à partir du spectre MAGNITUDE uniquement et l'image de test reconstruite à partir du spectre PHASE uniquement, qui, lorsqu'elles sont combinées ensemble, forment l'image de test originale?

entrez la description de l'image ici

clc;
clear all;
close all;
i1=imread('C:\Users\Admin\Desktop\rough\Capture1.png');
i1=rgb2gray(i1);

f1=fftn(i1);
mag1=abs(f1);
s=log(1+fftshift(f1));
phase1=angle(f1);

r1=ifftshift(ifftn(mag1));
r2=ifftn(exp(1i*phase1));
figure,imshow(i1);
figure,imshow(s,[]);
figure,imshow(uint8(r1));
figure,imshow(r2,[]);
r2=histeq(r2);
r3=histeq(uint8(r2));     
figure,imshow(r2);
figure,imshow(r3);

Réponses:


14

La figure 1. (c) montre l'image test reconstruite uniquement à partir du spectre MAGNITUDE. Nous pouvons dire que les valeurs d'intensité des pixels à basse fréquence sont comparativement plus élevées que les pixels à haute fréquence.

En fait, ce n'est pas correct. Les valeurs de phase déterminent le décalage des composantes sinusoïdales de l'image. Avec une phase nulle, toutes les sinusoïdes sont centrées au même endroit et vous obtenez une image symétrique dont la structure n'a aucune corrélation réelle avec l'image d'origine. Être centré au même endroit signifie que les sinusoïdes sont un maximum à cet endroit, et c'est pourquoi il y a une grosse tache blanche au milieu de la figure 1.c.

La reconstruction en phase seule conserve les caractéristiques en raison du principe de congruence de phase . À l'emplacement des bords et des lignes, la plupart des composants sinusoïdes ont la même phase. Voir http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/OWENS/LECT7/node2.html Ceci correctement seul peut être utilisé pour détecter des lignes et des bords, http: //www.csse.uwa. edu.au/~pk/research/pkpapers/phasecorners.pdf , sans égard à l'ampleur. Vous pouvez donc voir que les informations de phase sont les plus importantes.

La modification de l'amplitude des différentes sinusoïdes des composants modifie la forme de l'entité. Lorsque vous effectuez une reconstruction de phase uniquement, vous définissez toutes les grandeurs sur un, ce qui modifie la forme des entités, mais pas leur emplacement. Dans de nombreuses images, les composantes basse fréquence ont une amplitude plus élevée que les composantes haute fréquence, de sorte que la reconstruction en phase seule ressemble à un filtre passe-haut.

En bref, phase contient les informations sur l'emplacement des entités.

Vous ne pouvez pas ajouter les images de phase uniquement et de magnitude uniquement pour obtenir l'original. Vous pouvez les multiplier dans le domaine de Fourier et les retransformer pour obtenir l'original.


1
@ geometrical merci u monsieur pour l'explication.J'ai lu l'article mais j'ai un doute.sir, vous avez dit "A l'emplacement des bords et des lignes, la plupart des composants sinusoïdes ont la même phase." et en utilisant la méthode de congruence de phase, ceux-ci peuvent être détectés. mais monsieur les composants basse fréquence du gros patch blanc peuvent également avoir la même phase? de sorte que ces fréquences doivent également être détectées. J'ai également préparé un code comme vous l'avez dit dans votre dernière ligne de réponse, mais je ne suis pas en mesure de reconstruire l'image d'origine ... j'ajoute mon code dans le commentaire suivant.
sagar

1
@geometrical 'clc; tout effacer; ferme tout; i1 = imread ('C: \ Users \ Admin \ Desktop \ rough \ Capture1.png'); i1 = rgb2gray (i1); figure, imshow (i1); f1 = fftn (i1); mag1 = abs (f1); phase1 = angle (f1); a1 = fftn (mag1); a2 = fftn (phase1); a3 = a1. * a2; a4 = ifftn (a3); figure, imshow (uint8 (a4)); »
sagar

3
Dans la grande image en patch blanc, toutes les sinusoïdes ont été décalées pour avoir la même phase (= 0) au centre. La congruence de phase consiste à détecter des traits ou des bords dans les images. C'est une autre preuve que la phase est la plus importante pour la structure de l'image. Avec votre code, je veux dire reconstruire avec les images de phase et de magnitude.
geometrikal

2
clc; tout effacer; ferme tout; i1 = imread ('peppers.tif'); i1 = rgb2gray (i1); figure, imshow (i1); f1 = fftn (i1); mag1 = abs (f1); phase1 = exp (1i * angle (f1)); a1 = ifftn (mag1); a2 = ifftn (phase1); a3 = fftn (a1). * fftn (a2); a4 = ifftn (a3); figure, imshow (uint8 (a4));
geometrikal

1
désolé de vous déranger, mais qu'advient-il des composants basse fréquence qui ont la même phase.ils doivent également être conservés en phase uniquement de reconstruction. ??
sagar

5

Dans votre ligne, mag1=abs(f1); vous laissez inchangée l'intensité totale de l'image (testez-la en additionnant les intensités sur tous les pixels). Le rejet des informations de phase dans l'espace de Fourier conduit simplement à une redistribution spatiale de l'intensité dans l'espace réel, de sorte que r1 aura la même insité totale que i1.

Dans votre ligne, phase1=angle(f1); vous normalisez les amplitudes de chaque pixel (dans l'espace de Fourier) à 1, de sorte que l'intensité totale de l'image sera modifiée. La phase véhiculant une grande partie des informations spatiales de l'image, les principales caractéristiques de l'image sont néanmoins conservées.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.