使用 MATLAB 提示用户 select 一个图像文件

Use MATLAB to prompt user to select a image file

我正在尝试实现一个功能,从提示用户 select 图像开始并进行一些图像操作。这是我的代码:

[FileName, Path] = uigetfile ('*.bmp; *.png; *.jpg','Select the secret image');
secretImg = FileName;

R = secretImg(:,:,1);
G = secretImg(:,:,2);
B = secretImg(:,:,3);

然而,这提示我错误:

Index exceeds matrix dimensions.

Error in main (line 16) G = secretImg(:,:,2);

它与在代码中指定文件名的传统方法一起工作,如下所示:

%secretImg = imread('Images/lena.bmp');

试试这个:

secretImg = imread(strcat(Path,FileName));

完整代码:

[FileName, Path] = uigetfile ('*.bmp; *.png; *.jpg','Select the secret image');
secretImg = imread(strcat(Path,FileName));

%// One alternative is to use `fullfile` as rayryeng suggested, 
%// secretImg = imread(fullfile(Path,FileName));

R = secretImg(:,:,1);
G = secretImg(:,:,2);
B = secretImg(:,:,3);

使用imgetfile。与uitgetfile不同,imgetfile会自动过滤掉非图片文件。