matlab - 使用 MATLAB imread 函数读取 URL 图像时指定超时

标签 matlab timeout

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/

相关文章:

arrays - Matlab : expandable array, 丢失数据

matlab - 查找正向过零和负向过零

java - apache httpclient 4.3 没有超时

Java Spring : Return a response to a request if takes longer then a specified time

matlab - matlab Latex 解释器中的粗体希腊字母

python - 随机数重新排序的总和组合成重复值

algorithm - 使用互相关比较 2 个信号时, "good"R 值是多少?

timeout - 连接超时和连接生命周期

javascript - 如何重用 setTimeout

linux - 当运行带循环的 shell 脚本时,操作会停止