cc2005726 发表于 2009-1-2 17:43

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

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

= 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,,'uchar');
handles.data=Data;%这一段是把图像的数据保存在handles结构体中

fclose(fid);
axes(handles.figaxes);%本来这一句应该是能保证图片在指定坐标轴中显示的????????
imshow(Data,);
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 编辑 ]

huxuemin2008 发表于 2009-1-7 10:09

我和你做的界面差不多,可以互相交流,我是刚刚开始学。

cc2005726 发表于 2009-1-11 16:18

回复 板凳 huxuemin2008 的帖子

我用M文件已经做出来了,但是还不知道用GUIDE时为什么会有这种错误

ChaChing 发表于 2009-12-14 01:11

LZ解决了吗? 若解决了, 建议与大家分享你的成果
个人以为会不会是imshow的原因, 可否试试其他方式, 如imagesc ..., 但没得试, 个人不确定

cc2005726 发表于 2009-12-14 21:49

回复 地板 ChaChing 的帖子

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

[ 本帖最后由 cc2005726 于 2009-12-14 21:50 编辑 ]

ChaChing 发表于 2009-12-15 00:08

回复 5楼 cc2005726 的帖子

若可以的话, 建议给齐全些与大家分享你的成果!

cc2005726 发表于 2009-12-15 09:46

回复 6楼 ChaChing 的帖子

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

= 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,,'uchar');
handles.data=Data;%这一段是把图像的数据保存在handles结构体中

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

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

[ 本帖最后由 cc2005726 于 2009-12-15 09:51 编辑 ]
页: [1]
查看完整版本: 图片不能在坐标轴显示而且自己编的界面在图片显示后自动变了