使用uigetfile时如何捕获错误? [MATLAB]

时间:2016-04-30 15:53:36

标签: matlab error-handling

我有这句话colorImage = imread(uigetfile('*.jpg;*.tif;*.png;*.gif'));,我在电脑上选择一张图片。

问题是当我按下取消按钮时会出现错误。当我按下取消时如何捕获错误?

提前致谢。

2 个答案:

答案 0 :(得分:1)

如果在未指定out参数的情况下使用(如在您的指令中),则函数uigetfile仅返回filename

如果您选择的图像文件既不在当前目录中也不在MatLab path的文件夹中,则imread功能将无法找到图像文件;在这种情况下,您必须为imread提供完整的文件名(路径+文件名)。

你最好分开指令:

  • 使用uigetfile
  • 获取图片文件名
  • 检查选择中止:通过检查输出变量class的{​​{1}}来执行此操作
    • 如果选择文件,filename的{​​{1}}将为class
    • 如果选择中止,它将是filename,因为char在这种情况下返回double
  • 如果选择有效,请使用uigetfile
  • 构建图像完整文件名
  • 如果选择中止,请打印消息

这是上面列出的步骤的可能实现。

0

答案 1 :(得分:0)

使用Matlab的try and catch机制。 例如:

try
colorImage = imread(uigetfile('*.jpg;*.tif;*.png;*.gif'));
catch ME
  if (strcmp(ME.identifier,'MATLAB:imagesci:imread:badImageSourceDatatype'))
      %do something
  end  
end
相关问题