リンクが実際に壊れている場合は、 try/catchブロックを実装してエラー メッセージをキャッチし (オリジナルではありません)、画像をスキップできます。
次の構文を使用する場合:
try
A = imread('http://www.gossip.is/cgi-sys/suspendedpage.cgi');
catch ME
%// Just so we know what the identifier is.
ME
end
Matlab は最初に URL で指定された画像を読み取ろうとします。できない場合はcatch
、エラー メッセージ (実際には MException) に対して要求し、他の適切なアクションを実行します。
try/catch
問題は、ブロック内でそれを認識するために、正確なエラー メッセージが何であるかを知る必要があるということです。
上記のコードを入力すると、次の構造が得られましたME
。
ME =
MException with properties:
identifier: 'MATLAB:imagesci:imread:fileFormat'
message: 'Unable to determine the file format.'
cause: {0x1 cell}
stack: [2x1 struct]
したがって、エラーを生成する正確な識別子がわかれば、ブロックstrcmp
内でそれを探すために使用できます。try/catch
たとえば、次のコードを使用します。
clear
clc
try
A = imread('http://www.gossip.is/cgi-sys/suspendedpage.cgi');
catch ME
if strcmp(ME.identifier,'MATLAB:imagesci:imread:fileFormat')
disp('Image link broken')
end
A = imread('peppers.png');
end
imshow(A);
Matlab は、期待どおりに 'Image link壊れた' を表示し、読み取りますpeppers.png
。
それが役立つことを願っています!