MATLAB imread函数提供了从URL读取图像的能力。这通常工作正常,但偶尔会遇到需要很长时间才能响应的图像。
例如,在发布以下URL时,似乎只是卡在"连接…"’状态持续了5分钟以上,最后才成功。
http://www.hollywoodheadache.com/wp-content/uploads/2007/12/tom-and-julia.jpg是否有任何方法可以在MATLAB中设置超时?
谢谢
我不知道如何用计时器对象中断imread
。此外,我怀疑它的可能性。但是我可能会建议您先检查是否可以访问该文件,然后才能获得该文件。我编写了以下函数来检查文件和网络状态:
function flag = does_url_exist(urlName)
url =java.net.URL(urlName);
try
link = openStream(url);
parse = java.io.InputStreamReader(link);
snip = java.io.BufferedReader(parse);
if ~isempty(snip)
flag = 1;
else
flag = 0;
end
catch exception
flag = 0;
end
end
则如下:
fname = 'http://www.hollywoodheadache.com/wp-content/uploads/2007/12/tom-and-julia.jpg';
if(does_url_exist(fname))
img = imread(fname);
end
请注意,对于互联网连接检查,我从这篇文章中获取了初始代码。还要注意,如果您确定文件存在,那么再次检查它是不有效的,因为它会增加运行时间。