Azzera filtri
Azzera filtri

How can I display a complex image matrix in Matlab?

48 visualizzazioni (ultimi 30 giorni)
Agustin
Agustin il 8 Feb 2017
Modificato: John il 20 Ott 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?

Risposte (3)

KSSV
KSSV il 8 Feb 2017
Modificato: KSSV il 8 Feb 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 Commento
Agustin
Agustin il 8 Feb 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.

Accedi per commentare.


ali alizadeh
ali alizadeh il 14 Set 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 il 20 Ott 2023
Modificato: John il 20 Ott 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