私はこの文章を持っていますcolorImage = imread(uigetfile('*.jpg;*.tif;*.png;*.gif'));
私のコンピュータから画像を選択します。uigetfileを使用するとエラーをキャッチする方法はありますか? [MATLAB]
キャンセルボタンを押すとエラーが表示されるという問題があります。キャンセルを押したときにエラーをキャッチするにはどうすればよいですか?
ありがとうございます。
私はこの文章を持っていますcolorImage = imread(uigetfile('*.jpg;*.tif;*.png;*.gif'));
私のコンピュータから画像を選択します。uigetfileを使用するとエラーをキャッチする方法はありますか? [MATLAB]
キャンセルボタンを押すとエラーが表示されるという問題があります。キャンセルを押したときにエラーをキャッチするにはどうすればよいですか?
ありがとうございます。
Matlabのメカニズムを使用してください。 例:
try
colorImage = imread(uigetfile('*.jpg;*.tif;*.png;*.gif'));
catch ME
if (strcmp(ME.identifier,'MATLAB:imagesci:imread:badImageSourceDatatype'))
%do something
end
end
(あなたの命令のように)うちのパラメータのみfilename
機能uigetfile
リターンを指定せずに使用していました。
現在のディレクトリまたはMatLab path
のフォルダにない画像ファイルを選択した場合、imread
関数は画像ファイルを見つけることができません。その場合は、imread
に完全なファイル名(パス+ファイル名)を指定する必要があります。
あなたは命令を分割し、その後、より良い持っている:中出力変数のclass
filename
uigetfile
filename
のclass
はchar
uigetfile
ので、それはdouble
なり、中止することはメッセージfullfile
0
これは上記の手順の実装です。
% Get the image full file name (path and filename)
[filename,pathname]=uigetfile('*.jpg;*.tif;*.png;*.gif')
% Check for selection abort
if(strcmp(class(filename),'char'))
% If an image has been selected, create the image full filename
the_img=fullfile(pathname,filename);
% Read the image
colorImage = imread(the_img)
else
% If the image selection has been aborted, print a message
disp('Image selection aborted')
end
識別子は「MATLAB:imagesci:imread:badImageSourceDatatype'です。とにかくありがとう;) –
出力パラメータを指定せずに(OP命令のように)使用すると、関数uigetfileはファイル名だけを返します。そのため、選択したファイルが現在のディレクトリやMatLabパスのフォルダファイルを見つけることができません。より危険なのは、選択した名前のファイルが現在のフォルダまたはMatLAbパスのフォルダに存在する場合、そのファイルは選択したファイルの代わりに読み込まれます。 –