qdmagi 发表于 2006-4-18 10:08

一个简单的图像显示问题

用imshow函数显示图像时,出现了问题。请各位帮忙看看!谢谢!<BR>imshow(A,[])图像正常显示;<BR>但是imshow(A)就不能显示。<BR>

qdmagi 发表于 2006-4-18 14:33

顶上去!

happy 发表于 2006-4-19 20:41

回复:(qdmagi)一个简单的图像显示问题

请具体说明一下I是什么样的

qdmagi 发表于 2006-4-20 21:34

I是一个矩阵。<BR>具体说,是逆傅里叶变换后的一个矩阵。<BR>用imshow(A,[])显示时,可以正常显示。<BR>但是用imshow(A)显示时,就是一个全黑的图像。<BR>如何解释?

qdmagi 发表于 2006-4-21 14:17

大家帮帮我吧

happy 发表于 2006-4-21 22:32

回复:(qdmagi)一个简单的图像显示问题

请描述一下A矩阵

qdmagi 发表于 2006-4-26 10:18

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&gt;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&gt;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),[]); 中括号去掉,显示的图像就是一片黑,而带着中括号,显示的图像就是对的。

zxjun 发表于 2006-4-26 14:41

看不懂

qdmagi 发表于 2006-4-26 16:05

Re=ifft2(cgh);Re=fftshift(Re);<BR>figure;imshow(abs(Re),[]); % 再现图像<BR>这两句话应该可以说明Re的性质了。<BR>为什么imshow(abs(Re),[]); 中去掉中括号,显示图像变化怎么那么大啊?

qdmagi 发表于 2006-4-27 11:52

有人知道吗?

qdmagi 发表于 2006-4-27 12:06

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>

qdmagi 发表于 2006-4-27 13:28

sxf372284 发表于 2006-4-27 16:11

你试试先Re=uint8(Re); 在figure;imshow(abs(Re)); % 再现图像不加[].<BR>

qdmagi 发表于 2006-5-2 12:53

没人知道吗?

qdmagi 发表于 2006-5-4 16:10

帮帮忙吧!<BR>
页: [1] 2
查看完整版本: 一个简单的图像显示问题