我正在处理图像双(800x450x3),如果它符合某些条件,我想更改像素的值。然而,我第一次拥有的代码可以工作并给我一个很好的形象。当我尝试优化它时,当我在前一种情况下根本没有它们时,图像会得到非常奇怪的颜色(红色/紫色/蓝色等)。
首先我有代码:
diff = abs(double(rgbimage) - double(backgroundImage));
fusion = zeros(size(currentFrame));
for i=1:size(backgroundImage,1)
for j = 1:size(backgroundImage,2)
if diff(i,j) > 20
fusion(i,j, :) = double(rgbimage(i,j, :));
else
fusion(i,j, :) = 0;
end
end
end
我将其优化为:
diff = abs(double(rgbimage) - double(backgroundImage));
fusion = zeros(size(currentFrame));
indexes = diff > 20;
fusion(indexes) = double(rgbimage(indexes));
...我只是在情节之后
subplot(2,1,1), subimage(uint8(fusion));
title('Fusion');
有什么区别,为什么会出现此错误?谢谢!