royal_rain 发表于 2006-9-1 19:57

[新手求助]一个GUI编程问题

1.想做一个界面,能够读取并显示图片,并设计一个按钮,点击时能把当前显示的彩色图像转化为灰度图像.
前面显示图片那一步我会了,转为灰度图像时能使用图像处理工具箱中的rgb2gray函数吗?如果可以的话函数的变量应该填什么呢?我把各种句柄往里面塞都报错.郁闷死了

2.如果想要在如上界面中实现对图像感兴趣部分的手动选取,可以直接使用工具箱中的roipoly函数吗?还是要重新编程,查询每次鼠标点击的坐标位置...


跪求达人指教

eight 发表于 2006-9-1 20:32

原帖由 royal_rain 于 2006-9-1 19:57 发表
1.想做一个界面,能够读取并显示图片,并设计一个按钮,点击时能把当前显示的彩色图像转化为灰度图像.
前面显示图片那一步我会了,转为灰度图像时能使用图像处理工具箱中的rgb2gray函数吗?如果可以的话函数的变量应 ...


第一个问题你看帮助就有例子了。第二个问题,用ginput函数吧,查查帮助就ok了

royal_rain 发表于 2006-9-1 21:39

rgb2gray这个函数怎么用我知道呀
可是GUI编程的时候好像不能直接用变量传递数值的吧
在读取并显示图像的时候
function open_Callback(hObject, eventdata, handles)
file = uigetfile('*.*');
if ~isequal(file, 0)
    image_0=imread(file);   %读取图像
    imshow(image_0);            %显示图像
end
其中image_0就是图像的数据矩阵了,也就是rgb2gray要用到的变量
但是到设计按钮的那段,image_0这个变量程序就不认了,是不是还要重新从坐标轴上把图像读出来啊?到底怎么表示那幅图像啊?

eight 发表于 2006-9-1 21:56

原帖由 royal_rain 于 2006-9-1 21:39 发表
rgb2gray这个函数怎么用我知道呀
可是GUI编程的时候好像不能直接用变量传递数值的吧
在读取并显示图像的时候
function open_Callback(hObject, eventdata, handles)
file = uigetfile('*.*');
if ~isequal(f ...


我想有如下两个办法:
1.这是我常用的办法--把读出来的变量作为全局变量,也就是在两个函数体中加入global A,其中A就是你读取图像的矩阵数据;
2.利用handles存储,这样可以在文件中任意地方调用,如果你所用的matlab是2006a版本,看看帮助中的“Creating a GUI with GUIDE ”那一节

[ 本帖最后由 eight 于 2006-9-1 22:09 编辑 ]

royal_rain 发表于 2006-9-1 22:29

终于弄懂一些了,非常感激!
页: [1]
查看完整版本: [新手求助]一个GUI编程问题