tic parfor i1 = ix1:ix2 corr = zeros(m, n); for j1 = jy1:jy2 H1 = L_r(i1-M:i1+M, j1-M:j1+M); for j = j1-20:j1+20 H2 = R_r(i1-M:i1+M, j-M:j+M); corr(i1, j) = corr2(H1, H2); end rmax = max(max(corr)); if rmax < yuzhi disparity(i1, j1) = NaN; else [m1, n1] = find(corr == rmax); ymax = n1; % 三点曲线拟合 f_1 = corr(i1, ymax-1); f0 = corr(i1, ymax); f1 = corr(i1, ymax+1); ymax_fit = n1 + 0.5*(f_1 - f1)/(f_1 - 2*f0 + f1); disparity(i1, j1) = j1 - ymax_fit; end end end
时间: 2024-02-14 17:19:14 浏览: 59
OMNeT-TicToc.rar_omnet_omnet tictoc_site:www.pudn.com
这段代码在原来的基础上增加了一个并行循环,使用parfor关键字进行并行化处理,加快了程序的运行速度。具体实现包括以下几个步骤:
1. 使用tic函数开始计时。
2. 使用parfor关键字开启并行循环,对每个像素点进行匹配搜索和视差计算。
3. 在并行循环中,每个工作线程独立计算一部分像素点的匹配和视差,减少了计算时间。
4. 使用toc函数结束计时,输出程序运行时间。
需要注意的是,并行循环需要在MATLAB的并行计算环境下运行,而且并不是所有的程序都适合进行并行化处理。在实际应用中,需要根据具体情况进行评估和调优,以保证程序的正确性和性能。
阅读全文