一个简单的图像显示问题
用imshow函数显示图像时,出现了问题。请各位帮忙看看!谢谢!<BR>imshow(A,[])图像正常显示;<BR>但是imshow(A)就不能显示。<BR> 顶上去!回复:(qdmagi)一个简单的图像显示问题
请具体说明一下I是什么样的 I是一个矩阵。<BR>具体说,是逆傅里叶变换后的一个矩阵。<BR>用imshow(A,[])显示时,可以正常显示。<BR>但是用imshow(A)显示时,就是一个全黑的图像。<BR>如何解释? 大家帮帮我吧回复:(qdmagi)一个简单的图像显示问题
请描述一下A矩阵 close all;clc;clear<BR>A=zeros(64);<BR>A(15:20,20:40)=1;A(15:50,20:25)=1;<BR>A(45:50,20:40)=1;A(30:34,20:35)=1;<BR>% ppp=exp(rand(64)*pi*2*i);A=A.*ppp;<BR>% Author's email: <a href="mailtzjliu2001@163.com" target="_blank" ><STRONG><FONT color=#86aa42>zjliu2001@163.com</FONT></STRONG></A><BR>figure;imshow(abs(A),[]);<BR>Fa=fft2(fftshift(A));Fs=fftshift(Fa);<BR>Am=abs(Fs); % amplitude<BR>Ph=angle(Fs); % phase<BR>s=11;<BR>cgh=zeros(64*s);<BR>th=max(max(abs(Fs)));<BR>qq=th/1.2;<BR>Am(Am>qq)=qq;<BR>q=1:s;w=(s+1)/2;<BR>for m=1:64;<BR> for n=1:64;<BR> h=round(Am(m,n)/qq*(w-1)-0.5);<BR> md=zeros(s);<BR> if h>0;<BR> td=ones(h*2+1,3);<BR> Pm=round(Ph(m,n)/pi*3);<BR> kz=Pm+w;<BR> md(w-h:w+h,kz-1:kz+1)=td;<BR> end<BR> cgh((m-1)*s+q,(n-1)*s+q)=md;<BR> end<BR>end<BR>figure;imshow(cgh,[]);% 迂回位相编码结果<BR>Re=ifft2(cgh);Re=fftshift(Re);<BR>figure;imshow(abs(Re),[]); % 再现图像<BR><BR><BR><BR>就是这个程序。如果把最后一句的imshow(abs(Re),[]); 中括号去掉,显示的图像就是一片黑,而带着中括号,显示的图像就是对的。 看不懂 Re=ifft2(cgh);Re=fftshift(Re);<BR>figure;imshow(abs(Re),[]); % 再现图像<BR>这两句话应该可以说明Re的性质了。<BR>为什么imshow(abs(Re),[]); 中去掉中括号,显示图像变化怎么那么大啊? 有人知道吗? clc;clear;<BR>I=zeros(256);<BR>I(30:200,30:35)=1;<BR>I(30:35,30:150)=1;<BR>I(100:105,30:130)=1;<BR>I(195:200,30:150)=1;<BR>figure;imshow(I,[]);<BR>A=fft2(I);<BR>figure;imshow(A);<BR>以上这个程序可以正常显示图像I和它的傅里叶变换图像。但是,若在这个程序的最后一句中,figure;imshow(A);若在imshow(A);中加一个中括号,也就是变成imshow(A,[]);<BR>显示的图像就是一片黑。<BR>这是怎么回事呢?<BR>各位大哥大姐,帮帮忙吧!<BR> ? 你试试先Re=uint8(Re); 在figure;imshow(abs(Re)); % 再现图像不加[].<BR> 没人知道吗? 帮帮忙吧!<BR>
页:
[1]
2