声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2443|回复: 10

[绘图技巧] 请问Happy?——图片显示重叠问题。

[复制链接]
发表于 2006-8-25 20:57 | 显示全部楼层 |阅读模式

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

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

x
我在GUI的菜单栏建了“图片显示”项,目的是要在GUI中显示图像,显示的图像边上有个“下一幅”按钮,按一下按钮显示另一幅图像。这里出现了问题:第二幅图直接覆盖在第一幅上,第一幅图像没有清除,出现了重叠现象。

图像显示的语句为:

cd(pic_directory_name);
IM=imread(key_filename);
h=axes('position',[0.4,0.84,0.15,0.15]);
imshow(IM);

请问我该怎样把原先的图片先清除掉?不要出现重叠。

谢谢!
回复
分享到:

使用道具 举报

发表于 2006-8-25 21:36 | 显示全部楼层
cla
 楼主| 发表于 2006-8-29 20:44 | 显示全部楼层

Happy再问?——呵呵

如果我要同时刷新很多图片,用cla好象不行。(感觉cla只清楚上一个axes的图片)

for y=0.62:-0.22:0.18
    for x=0.03:0.2:0.83
        if t<=n
            h=axes('position',[x,y,0.15,0.15]);
            k=sort(1,t);
            IMY=imread(picturename(k).name);
            imshow(IMY);
            t=t+1;
        end
    end
end

我应该怎样该代码呢?
 楼主| 发表于 2006-8-29 21:14 | 显示全部楼层
??? Undefined function or variable 'CBIR'.

??? Error while evaluating uicontrol Callback.

'CBIR’是我建立的GUI和对应M文件的名字,错误是我按了单选按钮或显示下一幅图片pushbutton1是显示的,

对此一点头绪都没有。只能先请教高手?
发表于 2006-8-29 21:17 | 显示全部楼层
y=0.62;
x=0.03;
h=axes('position',[x,y,0.15,0.15]);
IMY=imread('football.jpg');
imshow(IMY);
pause;

cla;
y=0.5;
x=0.03;
h=axes('position',[x,y,0.15,0.15]);
IMY=imread('trees.tif');
imshow(IMY);
pause;

cla;
y=0.2;
x=0.03;
h=axes('position',[x,y,0.15,0.15]);
IMY=imread('cameraman.tif');
imshow(IMY);


以上代码直接运行,每显示一个图像停留一次,用户按任意键后显示下一个图像,并清除上一个图像,你自己参考一下吧

评分

1

查看全部评分

 楼主| 发表于 2006-8-29 21:34 | 显示全部楼层

谢谢!

不过能不能不pause啊!!?

想一次全部显示,因为要显示的图片一面要几十幅的...
发表于 2006-8-29 21:37 | 显示全部楼层
原帖由 chu_qiu 于 2006-8-29 21:34 发表
不过能不能不pause啊!!?

想一次全部显示,因为要显示的图片一面要几十幅的...


这个小问题拉,我所用的pause就相当于next button的功能,你删掉pause就可以了
 楼主| 发表于 2006-8-29 21:44 | 显示全部楼层
呵呵,恩!这个问题也帮忙看看哈。

??? Undefined function or variable 'CBIR'.

??? Error while evaluating uicontrol Callback.

'CBIR’是我建立的GUI和对应M文件的名字,错误是我按了单选按钮或显示下一幅图片pushbutton1是显示的,

对此一点头绪都没有
发表于 2006-8-30 20:00 | 显示全部楼层
原帖由 chu_qiu 于 2006-8-29 21:44 发表
呵呵,恩!这个问题也帮忙看看哈。

??? Undefined function or variable 'CBIR'.

??? Error while evaluating uicontrol Callback.

'CBIR’是我建立的GUI和对应M文件的名字,错误是我按了单选按钮或显示 ...


路径对不对?你which CBIR看看
发表于 2006-8-31 01:57 | 显示全部楼层
1.以下我认为是“同时”刷新的正解,在同一个figure上思路也一样:
  1. function ClaFig
  2. clc
  3. close all
  4. [X1,M1]=imread('MATLABfig.jpg');
  5. [X2,M2]=imread('sphere.jpg');
  6. [X3,M3]=imread('surf1.jpg');
  7. hFig1=figure;
  8. hImage1=imshow(X1);
  9. hFig2=figure;
  10. hImage2=imshow(X2);
  11. hFig3=figure;
  12. hImage3=imshow(X3);
  13. hImage=[hImage1,hImage2,hImage3];
  14. delete(hImage)
复制代码

另外用position找轴的思路不科学,把所有句柄都找到统一处理是正路,也没那么多毫无必要的循环。
2.
  1. ??? Undefined function or variable 'CBIR'.
  2. ??? Error while evaluating uicontrol Callback.
复制代码

这一般是回调函数和主函数通信时参数传递错误造成的,happy所说的情况我认为可能性不大,新手一般都是把相应的文件放在一个目录下的,他们不习惯用cd和mkdir命令。不会东放一个西放一个文件,战战兢兢尚且出错,何况如此出格。^_^

评分

1

查看全部评分

 楼主| 发表于 2006-9-7 19:49 | 显示全部楼层

问题解决了

谢谢happy和bainhome的指导,尤其是bainhome得解答,两个问题都解决了,非常感谢!

我的毕业论文试验快做完了,这段时间多亏了振动论坛的帮助,谢谢大家!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-20 01:53 , Processed in 0.115277 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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