0

我正在研究图像检索系统,为了评估 CBIR 的性能,我们应该计算检索时间。我使用了内置函数 tic 和 toc 函数;我看到它每次运行都给了我不同的时间,并且我看到它总结了从运行到运行的时间。我做了很多尝试计算每次检索的检索时间,例如我保存了检索时间(这意味着toc 包含)在一个变量中说 timeR=toc,然后我 timeR=0 用于下一次检索...

timeR=o;
tic;

% image retrieval process

toc;

timR=toc;

仍然我得到不同的时间..请任何人帮助我如何计算每个查询图像的检索时间,谢谢

4

1 回答 1

1

有时,检索代码对每个图像的执行略有不同。为了更好地了解您的运行时间,我建议您使用 Matlab 的分析工具。

 profile clear;
 profile on; 
 % your code here
 profile off;
 profile viewer;

使用分析器,您可以查看代码中需要时间的内容。

此外,在您的代码片段中,您调用toc了两次,这可能会导致您遇到一些奇怪的行为。

对于更具体的措施,您可以尝试

rTimes = zeros(1, numMethods);
% prepare images and what ever you need ...
for imi = 1:numImages
    % read test image ...
    tic;
    % use your method for ret.
    rTimes(1) = rTimes(1) + toc; % add this run time to your counter


    tic;
    % here you run method 2 that you want to compare to...
    rTimes(2) = rTimes(2) + toc; % add run time for method 2

    % do the same for all methods ...

    tic;
    % run the numMethods-th method
    rTimes(numMethods) = rTimes(numMethods) + toc;
end
% now rTimes hold the running times (overall) for all methods over all test images.
于 2012-11-24T20:23:39.320 回答