向大家请教一个问题,我在做 图像插值运算时,同样的程序用GUI 要几分钟,直接在MATLAB命令窗口只有几秒
下面是我的GUI 程序
im=imread('cameraman.tif');
global im
global BW %定义全局变量
str=get(hObject,'string'); %拿到所选按钮的名称
axes(handles.axes2); %使用第二个axes
switch str %选择语句
case'nearest'
h=waitbar(0,'请等待...');
BW = imresize(im,1,'nearest')
waitbar(1,h,'已完成');
pause(2);
delete(h);
imshow(BW);title('最邻近插值');
case.......
........
case...
..................
end;
但是我在MATLAB 命令窗口中 直接输入 im=imread('cameraman.tif');
BW = imresize(im,1,'nearest')
imshow(BW);title('最邻近插值')
运行不到三秒钟
两个BW = imresize(im,1,'nearest') 后面都没有加分号,这样可以在MATLAB命令窗口看到运行情况,后者确实比前面好快几十倍,不知道是不是我的程序有问题
另外就是那个进度条,在这种情况下用时开始进度条一直是 0 到最后一下子就变成100%,不是慢慢由0变成满格的
最后是终止程序,运行过程中如果想强制终止程序的话,除了在键盘上 按 ctrl+c 外 ,能不能用函数或者命令终止,就是 在 GUI上设置一个push button 但点击时,终止当前的的任何程序 退出, 我用
clc;
clear all
close(gcf);
好像不行,在正常情况下可以退出,但是 像我那种 在计算插值的时候,运行太久,我想退出时,用 close 根本不行, 最后只能用 键盘或者任务管理器 退出 。
最后再加一个问题 就是用slider 滑块时 怎样可以让滑块的数值随着滑动即时显示出来
向各位高手求教 Thank you very much !
[本帖最后由 fredlau 于 2008-11-23 16:30 编辑]