我正在研究图像检索系统,为了评估CBIR的性能,我们应该计算检索时间。我使用了功能性的tic和toc函数;我看到它给了我不同的时间每次运行,我看到一些时间它总结了从运行到运行的时间..我让很多人试图计算每次检索的检索时间,例如我保存了检索时间(这意味着toc包含)在一个变量中说timeR = toc,然后我timeR = 0用于下一次检索...
timeR=o;
tic;
% image retrieval process
toc;
timR=toc;
我还有不同的时间......请帮助我如何计算每个查询图像的检索时间,谢谢
答案 0 :(得分: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.