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
请注意,对于互联网连接检查,我从 this post 中获取了初始代码.另请注意,如果您确定该文件存在,则再次检查它效率不高,因为它会增加运行时间。
关于matlab - 使用 MATLAB imread 函数读取 URL 图像时指定超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8524349/