我正在尝试实现一个功能,从提示用户选择图像并执行一些图像操作开始。这是我的代码:
[FileName, Path] = uigetfile ('*.bmp; *.png; *.jpg','Select the secret image');
secretImg = FileName;
R = secretImg(:,:,1);
G = secretImg(:,:,2);
B = secretImg(:,:,3);
然而,这提示我错误:
指数超出矩阵维度。
主要错误(第16行)G = secretImg(:,:,2);
它适用于传统方法,它在代码中指定文件名,如下所示:
%secretImg = imread('Images/lena.bmp');
答案 0 :(得分:1)
试试这个:
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);
答案 1 :(得分:0)
使用imgetfile
。与uitgetfile
不同,imgetfile
会自动过滤掉非图片文件。