MATLAB: Stuck here ,please help me out,if there are some more mistakes give the solution

image segmentation

This is the part of mean shift segmentation code
while ~done
weightAccum = 0;
yAccum = 0;
% only 99.75% area (3sigma) of the entire non-zero Gaussian kernel is considered
for i = -3*hs:3*hs % hs is spatial kernel
for j = -3*hs:3*hs
% spatial kernel weight
spatialKernel = exp(-(i^2+j^2)/(hs^2/2));
xThis = xPad(height+i:2*height+i-1, width+j:2*width+j-1, 1:depth);
xDiff = abs(y-xThis);
xDiffSq = xDiff.^2./hf^2; % hf is feature kernel
% deal with multi-channel image
if depth > 1
xDiffSq = repmat(sum(xDiffSq,3),[1,1,depth]);
end
% feature kernel weight
intensityKernel = exp(-(xDiffSq)./2);
% mixed kernel weight
weightThis = spatialKernel.*intensityKernel.*xDiff;
% update accumulated weights
weightAccum = weightAccum+ weightThis;
% update accumulated estimated ys from xs
yAccum = yAccum+xThis.*weightThis;
end
end
% normalized y
yThis = yAccum./(weightAccum+eps);
% convergence criterion
yMSE = mean((yThis(:)-y(:)).^2);
if yMSE <= th % exit if converge
done = 1;
else % otherwise update estimated y and repeat mean shift
y = yThis;
iter = iter+1;
if plotOn
drawnow, imshow(uint8(y)),axis image, title(['iteration times = ' num2str(iter) '; mse = ' num2str(yMSE)]);
end
end
end
stuck here
??? Error using ==> times Integers can only be combined with integers of the same class, or scalar doubles.
Error in ==> meanShiftseg at 50 weightThis = spatialKernel.*intensityKernel.*xDiff;
Error in ==> meanshiftdemo at 83 y = meanShiftseg(x,8,10);

Best Answer

Cast them all to doubles before you multiply.