声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2286|回复: 15

一个简单的图像显示问题

[复制链接]
发表于 2006-4-18 10:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

使用道具 举报

 楼主| 发表于 2006-4-18 14:33 | 显示全部楼层
顶上去!
发表于 2006-4-19 20:41 | 显示全部楼层

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

请具体说明一下I是什么样的
 楼主| 发表于 2006-4-20 21:34 | 显示全部楼层
I是一个矩阵。<BR>具体说,是逆傅里叶变换后的一个矩阵。<BR>用imshow(A,[])显示时,可以正常显示。<BR>但是用imshow(A)显示时,就是一个全黑的图像。<BR>如何解释?
 楼主| 发表于 2006-4-21 14:17 | 显示全部楼层
大家帮帮我吧[em02]
发表于 2006-4-21 22:32 | 显示全部楼层

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

请描述一下A矩阵
 楼主| 发表于 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),[]); 中括号去掉,显示的图像就是一片黑,而带着中括号,显示的图像就是对的。
发表于 2006-4-26 14:41 | 显示全部楼层
看不懂[em04]
 楼主| 发表于 2006-4-26 16:05 | 显示全部楼层
Re=ifft2(cgh);  Re=fftshift(Re);<BR>figure;imshow(abs(Re),[]); % 再现图像<BR>这两句话应该可以说明Re的性质了。<BR>为什么imshow(abs(Re),[]); 中去掉中括号,显示图像变化怎么那么大啊?
 楼主| 发表于 2006-4-27 11:52 | 显示全部楼层
有人知道吗?
 楼主| 发表于 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>[em06]
 楼主| 发表于 2006-4-27 13:28 | 显示全部楼层
发表于 2006-4-27 16:11 | 显示全部楼层
你试试  先  Re=uint8(Re); 在  figure;imshow(abs(Re)); % 再现图像不加[].<BR>[em04]
 楼主| 发表于 2006-5-2 12:53 | 显示全部楼层
没人知道吗?
 楼主| 发表于 2006-5-4 16:10 | 显示全部楼层
帮帮忙吧!<BR>
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 23:06 , Processed in 0.083616 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表