为什么我收到此错误parfor中的变量无法分类

时间:2014-02-12 22:04:34

标签: image matlab parfor

我正在尝试使用parfor来估算超过96秒的时间并且我需要处理多个图像,但是我收到了这个错误:

  

parfor中的变量B无法分类

这是我写的代码:

Io=im2double(imread('C:My path\0.1s.tif')); 
Io=double(Io);
In=Io;
sigma=[1.8 20];
[X,Y] = meshgrid(-3:3,-3:3);
G = exp(-(X.^2+Y.^2)/(2*1.8^2));
dim = size(In);
B = zeros(dim);
c = parcluster
  matlabpool(c)
parfor i = 1:dim(1)
    for  j = 1:dim(2)
         % Extract local region.
         iMin = max(i-3,1);
         iMax = min(i+3,dim(1));
         jMin = max(j-3,1);
         jMax = min(j+3,dim(2));
         I = In(iMin:iMax,jMin:jMax);
         % Compute Gaussian intensity weights.
         H = exp(-(I-In(i,j)).^2/(2*20^2));
         % Calculate bilateral filter response.
         F = H.*G((iMin:iMax)-i+3+1,(jMin:jMax)-j+3+1);
         B(i,j) = sum(F(:).*I(:))/sum(F(:));   
  end
   end
 matlabpool close

任何想法?

1 个答案:

答案 0 :(得分:2)

不幸的是,实际上dim在这种情况下混淆了MATLAB。您可以通过执行

来解决此问题
[n, m] = size(In);
parfor i = 1:n
    for j = 1:m
        B(i, j) = ...
    end
end
相关问题