声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1460|回复: 6

[GUI界面] 图片不能在坐标轴显示而且自己编的界面在图片显示后自动变了

[复制链接]
发表于 2009-1-2 17:43 | 显示全部楼层 |阅读模式

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

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

x
我自己用guide作了一个界面,在file菜单中的open选项中,我要实现的功能是把用户选择的图片显示在坐标轴上,这个坐标轴的Tag属性我已经设成了figtag.  源代码如下:
function openbut_Callback(hObject, eventdata, handles)

[filename, pathname] = uigetfile('*.raw', 'Pick an raw-fig');%打开对话框
    if isequal(filename,0) || isequal(pathname,0)
       return
    else
       f= fullfile(pathname, filename);      
       handles.nampath=f;     
    end
   
    fid=fopen(handles.nampath,'r');%这是打开RAW后缀格式的图片,所以不能用imread

Data = fread(fid,[368 241],'uchar');
handles.data=Data;%这一段是把图像的数据保存在handles结构体中

fclose(fid);
axes(handles.figaxes);%本来这一句应该是能保证图片在指定坐标轴中显示的????????
imshow(Data,[0 255]);
guidata(hObject, handles);  
运行时出现了三个问题,
一是MATLAB总是自动新开一个figure窗口,然后在这个窗口中显示图片;
二是同时我自己编的那个GUI界面自动变成了MATLAB默认的那种figure窗口,
三是命令窗口总是显示下面的错误信息
Error using ==> guidata
H must be the handle to a figure or figure descendent.
Error in ==> comdecom2>openbut_Callback at 127
guidata(hObject, handles);  

图片显示在附件中.

[ 本帖最后由 cc2005726 于 2009-1-2 22:28 编辑 ]

我自己编的界面

我自己编的界面
用户通过上图中FILE菜单打开的图片,在新窗口显示了.jpg

同时我自己编的界面变成了这样子了

同时我自己编的界面变成了这样子了
回复
分享到:

使用道具 举报

发表于 2009-1-7 10:09 | 显示全部楼层
我和你做的界面差不多,可以互相交流,我是刚刚开始学。
 楼主| 发表于 2009-1-11 16:18 | 显示全部楼层

回复 板凳 huxuemin2008 的帖子

我用M文件已经做出来了,但是还不知道用GUIDE时为什么会有这种错误
发表于 2009-12-14 01:11 | 显示全部楼层
LZ解决了吗? 若解决了, 建议与大家分享你的成果
个人以为会不会是imshow的原因, 可否试试其他方式, 如imagesc ..., 但没得试, 个人不确定
 楼主| 发表于 2009-12-14 21:49 | 显示全部楼层

回复 地板 ChaChing 的帖子

我刚找了下原来解决时用的M文件,但没找到。然后我自己随便又做了个界面,实现类似的功能,同样的代码居然运行通过了,真是奇怪啊。
要是没有ChaChing回复又让我注意到这个帖的话,我还真没想到会变成这样

[ 本帖最后由 cc2005726 于 2009-12-14 21:50 编辑 ]
发表于 2009-12-15 00:08 | 显示全部楼层

回复 5楼 cc2005726 的帖子

若可以的话, 建议给齐全些与大家分享你的成果!
 楼主| 发表于 2009-12-15 09:46 | 显示全部楼层

回复 6楼 ChaChing 的帖子

好的,其实程序并没有并,还是我在一楼帖的那些。在button\的callback属性里填上如下代码:
function openbut_Callback(hObject, eventdata, handles)

[filename, pathname] = uigetfile('*.raw', 'Pick an raw-fig');%打开对话框
    if isequal(filename,0) || isequal(pathname,0)
       return
    else
       f= fullfile(pathname, filename);      
       handles.nampath=f;     
    end
   
    fid=fopen(handles.nampath,'r');%这是打开RAW后缀格式的图片,所以不能用imread

Data = fread(fid,[368 241],'uchar');
handles.data=Data;%这一段是把图像的数据保存在handles结构体中

fclose(fid);
axes(handles.figaxes);%本来这一句应该是能保证图片在指定坐标轴中显示的????????
imshow(Data,[0 255]);
guidata(hObject, handles);

raw格式的图片传不上来,所以各位可以把上述程序中的raw改成jpg试下,是一样的

[ 本帖最后由 cc2005726 于 2009-12-15 09:51 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-11 14:58 , Processed in 0.127263 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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