MATLAB - 使用全局变量时图像无法正确显示

时间:2014-07-31 04:54:22

标签: image matlab user-interface global-variables

我正在尝试使用全局变量来存储从.tif文件加载的图像。但是,当我显示图像时,亮度/对比度会变得歪斜。当我删除全局声明时,图像加载得很好,但是这使我无法在我用于编辑/保存的其他函数中使用它。

以下是相关的代码片段:

global rgbI %<----Change this from global to not global

fname = 'test.tif';
info = imfinfo(fname);
num_images = numel(info);

for k = 1:num_images
    I(:,:,k) = imread(fname, k);
    rgbI(:,:,:,k) = repmat(I(:,:,k),[1 1 3]);
end

imshow(rgbI(:,:,:,150))

我在MATLAB GUI中使用它(使用GUIDE编写),以及附加到各种按钮等的其他几个函数。但是,这个问题甚至出现在GUI之外的这个小脚本中。

以下是我得到的结果图片:

图像#1

blah

图像#2

blah

非常感谢任何建议/帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

一种方法是在所有需要它的函数中将变量声明为全局变量。

另一种方式是guidata。参考资料如下:guidata