Effacer les filtres
Effacer les filtres

How can I display a complex image matrix in Matlab?

48 vues (au cours des 30 derniers jours)
Agustin
Agustin le 8 Fév 2017
Modifié(e) : John le 20 Oct 2023
Hi, I have two complex image matrices of size 1001 x 1001 and I want to display them in Matlab. I tried using the image() and imshow() commands and using the abs, fft and real commands to be able to display them but I keep getting errors. Can somebody help me how can I do this?

Réponses (3)

KSSV
KSSV le 8 Fév 2017
Modifié(e) : KSSV le 8 Fév 2017
You can separate the real part and imaginary part using real, imag respectively.
clear all
N = 1001 ;
I = rand(N,N,3) + 1i*rand(N,N,3) ; % some complex random data
image(real(I)) ; % real parts
image(imag(I)) ; % imaginary parts
image(abs(I)) ; % absolute
  1 commentaire
Agustin
Agustin le 8 Fév 2017
I tried this example and I get an error with image(abs(I)); The Error message is as follows: Error using image TrueColor CData contains element out of range 0.0 <= value <= 1.0
I also tried it with my image and what I get is a blue image and I don't see the targets that I measured on the radar.

Connectez-vous pour commenter.


ali alizadeh
ali alizadeh le 14 Sep 2022
Hi dear
try this!
clear all
N=1001
N = 1001
I=rand(N,N,3)+1i*rand(N,N,3);
imshow(I,[])
Warning: Displaying real part of complex input.

John
John le 20 Oct 2023
Modifié(e) : John le 20 Oct 2023
AFAIK there's no native support for a pseudo-complex colormap, so I implemented it, here. Usage is simple:
x = randn(100, 100) + i*randn(100, 100);
imagesc(colorize_complex(x));
Applied example (see link for code):

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by